Skip to main content

Filling

Enum Filling 

Source
#[non_exhaustive]
pub enum Filling<'a> { Absent, Text(&'a mut String), On(&'a mut bool), Ticked(&'a mut Vec<String>), Between { lower: &'a mut String, upper: &'a mut String, }, }
Expand description

What the field currently holds, borrowed from wherever the app keeps it.

The immediate-mode counterpart of makeover_webview::form::Value, and the place the two renderers are forced apart: there the value is read back out of the DOM after the fact, and here the widget writes through this borrow as it is edited. Same reason the description carries neither.

An enum rather than a bag of options, on the reasoning makeover_webview::form::Value records: a checkbox holding a string is unsayable here, where a struct would let it be said and then have to cope.

#[non_exhaustive] since Ticked arrived, which is the breaking change that made room for it: a host builds these and never matches on them, so the next shape of held value costs nobody a match arm.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Absent

Nothing to edit. The control is drawn and does not answer.

§

Text(&'a mut String)

The buffer behind anything that takes typed text, a select included: what a select holds is the value of one of its Choices.

§

On(&'a mut bool)

A checkbox, on or off.

§

Ticked(&'a mut Vec<String>)

The values of a FieldKind::Checklist’s ticked options.

The values rather than a bool per option, because the options are the description’s and the set is the app’s: a host keeps what was ticked under the option values it submits, and a parallel list of bools would have to be re-aligned with the options every time the list changed. Ticking pushes the option’s value and unticking removes it, so the order is the order things were ticked in, which is no order a handler should read anything into.

§

Between

The two buffers behind a FieldKind::Interval, lower first.

Two buffers rather than one string with a separator, which is makeover_layout::Field::upper_name’s reason one level down: an interval is submitted under two names, so it is edited as two values, and a delimiter this crate owned could appear inside either of them.

Either end may be empty while the other stands. An open end is an answer – “over 120 BPM” – rather than a half-filled box.

Fields

§lower: &'a mut String

The lower end’s buffer.

§upper: &'a mut String

The upper end’s buffer.

Trait Implementations§

Source§

impl<'a> Debug for Filling<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for Filling<'a>

Source§

fn default() -> Filling<'a>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for Filling<'a>

§

impl<'a> Freeze for Filling<'a>

§

impl<'a> RefUnwindSafe for Filling<'a>

§

impl<'a> Send for Filling<'a>

§

impl<'a> Sync for Filling<'a>

§

impl<'a> Unpin for Filling<'a>

§

impl<'a> UnsafeUnpin for Filling<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.