pub trait FormField<El>: Sized {
type Config: Clone + Default + 'static;
type Signal: Clone + 'static;
// Required methods
fn default_signal(
config: &Self::Config,
initial: Option<Self>,
) -> Self::Signal;
fn is_initial_value(signal: &Self::Signal) -> bool;
fn into_signal(
self,
config: &Self::Config,
initial: Option<Self>,
) -> Self::Signal;
fn try_from_signal(
signal: Self::Signal,
config: &Self::Config,
) -> Result<Self, FormError>;
fn recurse(signal: &Self::Signal);
fn reset_initial_value(signal: &Self::Signal);
// Provided methods
fn validate(_: Self::Signal) -> Result<(), FormError> { ... }
fn with_error<O>(
signal: &Self::Signal,
f: impl FnOnce(Option<&FormError>) -> O,
) -> O { ... }
}
Required Associated Types§
Required Methods§
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
Provided Methods§
fn validate(_: Self::Signal) -> Result<(), FormError>
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl FormField<HtmlElement<Input>> for Cow<'_, str>
impl FormField<HtmlElement<Input>> for Cow<'_, str>
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for Oco<'static, str>
impl FormField<HtmlElement<Input>> for Oco<'static, str>
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for f32
impl FormField<HtmlElement<Input>> for f32
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for f64
impl FormField<HtmlElement<Input>> for f64
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for i8
impl FormField<HtmlElement<Input>> for i8
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for i16
impl FormField<HtmlElement<Input>> for i16
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for i32
impl FormField<HtmlElement<Input>> for i32
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for i64
impl FormField<HtmlElement<Input>> for i64
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for i128
impl FormField<HtmlElement<Input>> for i128
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for isize
impl FormField<HtmlElement<Input>> for isize
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for u8
impl FormField<HtmlElement<Input>> for u8
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for u16
impl FormField<HtmlElement<Input>> for u16
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for u32
impl FormField<HtmlElement<Input>> for u32
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for u64
impl FormField<HtmlElement<Input>> for u64
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for u128
impl FormField<HtmlElement<Input>> for u128
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for usize
impl FormField<HtmlElement<Input>> for usize
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for String
impl FormField<HtmlElement<Input>> for String
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for BigDecimal
impl FormField<HtmlElement<Input>> for BigDecimal
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for DateTime<FixedOffset>
Available on crate feature chrono
only.
impl FormField<HtmlElement<Input>> for DateTime<FixedOffset>
Available on crate feature
chrono
only.type Config = FixedOffsetDateTimeConfig
type Signal = FormFieldSignal<String>
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
Source§impl FormField<HtmlElement<Input>> for DateTime<Local>
Available on crate feature chrono
only.
impl FormField<HtmlElement<Input>> for DateTime<Local>
Available on crate feature
chrono
only.type Config = LocalDateTimeConfig
type Signal = FormFieldSignal<String>
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
Source§impl FormField<HtmlElement<Input>> for DateTime<Utc>
Available on crate feature chrono
only.
impl FormField<HtmlElement<Input>> for DateTime<Utc>
Available on crate feature
chrono
only.type Config = UtcDateTimeConfig
type Signal = FormFieldSignal<String>
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
Source§impl FormField<HtmlElement<Input>> for NaiveDate
Available on crate feature chrono
only.
impl FormField<HtmlElement<Input>> for NaiveDate
Available on crate feature
chrono
only.type Config = NaiveDateConfig
type Signal = FormFieldSignal<String>
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
Source§impl FormField<HtmlElement<Input>> for NaiveDateTime
Available on crate feature chrono
only.
impl FormField<HtmlElement<Input>> for NaiveDateTime
Available on crate feature
chrono
only.type Config = NaiveDateTimeConfig
type Signal = FormFieldSignal<String>
fn default_signal(config: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal( self, config: &Self::Config, initial: Option<Self>, ) -> Self::Signal
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
fn try_from_signal( signal: Self::Signal, config: &Self::Config, ) -> Result<Self, FormError>
Source§impl FormField<HtmlElement<Input>> for BigInt
impl FormField<HtmlElement<Input>> for BigInt
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for BigUint
impl FormField<HtmlElement<Input>> for BigUint
type Config = ()
type Signal = FormFieldSignal<String>
fn default_signal(_: &Self::Config, initial: Option<Self>) -> Self::Signal
fn is_initial_value(signal: &Self::Signal) -> bool
fn into_signal(self, _: &Self::Config, initial: Option<Self>) -> Self::Signal
fn try_from_signal( signal: Self::Signal, _: &Self::Config, ) -> Result<Self, FormError>
fn recurse(signal: &Self::Signal)
fn reset_initial_value(signal: &Self::Signal)
fn with_error<O>( signal: &Self::Signal, f: impl FnOnce(Option<&FormError>) -> O, ) -> O
Source§impl FormField<HtmlElement<Input>> for Uuid
Available on crate feature uuid
only.
impl FormField<HtmlElement<Input>> for Uuid
Available on crate feature
uuid
only.