Struct Field

Source
pub struct Field<'a> { /* private fields */ }
Expand description

Represents a form field/element.

A Field can convert itself to JSON (and other formats, using serde) and can perform validation of its Values based on its Constraints. Note that the value field always contains a Vec of Values, close to how HTML url encoding works (where every key can appear more than once and every value is a string, or optional).

Implementations§

Source§

impl<'a> Field<'a>

Source

pub fn new( name: &'a str, label: &'a str, element: Element, required: bool, values: Option<Vec<Value>>, choices: &'a [(&'a str, &'a str)], constraints: Vec<Constraint<'a>>, attributes: Vec<Attr<'a>>, ) -> Field<'a>

Initialize a Field.

It is advised to use the builder-style methods on HtmlForm to instantiate, since those perform additional checks and prepare arguments.

Source

pub fn values(&self) -> Vec<Value>

Returns a Vec of 0 or more non-empty values from self.values.

Source

pub fn validate(&self, values: &[&Value]) -> Result<(), ValidationError>

Validate a set of values

Note that this assumes values contains the correct amount of non-empty values for this Field, so dealing with errors regarding self.required and amount of values should be done before this method is called.

Generally, this method is not called directly, but indirectly by HtmlForm’s update().

Source

pub fn empty(&mut self)

Clear the Field’s values.

Source

pub fn set_values(&mut self, values: Vec<&Value>)

Set the Field’s values.

Trait Implementations§

Source§

impl<'a> Debug for Field<'a>

Source§

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

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

impl<'a> Serialize for Field<'a>

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Field<'a>

§

impl<'a> !RefUnwindSafe for Field<'a>

§

impl<'a> !Send for Field<'a>

§

impl<'a> !Sync for Field<'a>

§

impl<'a> Unpin for Field<'a>

§

impl<'a> !UnwindSafe for Field<'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<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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.