ValidationBuilder

Struct ValidationBuilder 

Source
pub struct ValidationBuilder<FD: FormToolData, T: ?Sized + 'static> { /* private fields */ }
Expand description

A helper builder that allows you to specify a validation function declaritivly

Using this builder is not required as validation functions can just be closures, but for simple validation function this builder can be helpful

Validations are run in the order that they are called in the builder.

Implementations§

Source§

impl<FD: FormToolData, T: ?Sized + 'static> ValidationBuilder<FD, T>

Source

pub fn for_field(field_fn: impl Fn(&FD) -> &T + Send + Sync + 'static) -> Self

Creates a new empty ValidationBuilder on the given field.

Source

pub fn named(self, name: impl ToString) -> Self

The name of the field that is being validated.

This is the name that will be used for error messages.

Source

pub fn custom(self, f: impl ValidationFn<T>) -> Self

Adds a custom validation function.

The function should take the value as an argument and return a Result<(), String>, just like any other validation function.

Source

pub fn build(self) -> impl ValidationFn<FD>

Builds the action validation function.

Source§

impl<FD: FormToolData, T> ValidationBuilder<FD, Option<T>>

Source

pub fn required(self) -> Self

Requires the field to be Some.

Source§

impl<FD: FormToolData> ValidationBuilder<FD, str>

Source

pub fn required(self) -> Self

Requires the field to not be empty.

Source

pub fn min_len(self, min_len: usize) -> Self

Requires the field’s length to be at least min_len.

Source

pub fn max_len(self, max_len: usize) -> Self

Requires the field’s length to be less than or equal to min_len.

Source

pub fn contains(self, pattern: impl ToString) -> Self

Requires the field to contain pattern.

Source§

impl<FD: FormToolData, T: PartialOrd<T> + Display + Send + Sync + 'static> ValidationBuilder<FD, T>

Source

pub fn min_value(self, min_value: T) -> Self

Requires the value to be at least min_value according to PartialOrd.

Source

pub fn max_value(self, max_value: T) -> Self

Requires the value to be at most max_value according to PartialOrd.

Source§

impl<FD: FormToolData, T: PartialEq<T> + Display + Send + Sync + 'static> ValidationBuilder<FD, T>

Source

pub fn whitelist(self, whitelist: Vec<T>) -> Self

Requires the field to be in the provided whitelist.

Source

pub fn blacklist(self, blacklist: Vec<T>) -> Self

Requires the field to not be in the provided blacklist.

Auto Trait Implementations§

§

impl<FD, T> Freeze for ValidationBuilder<FD, T>
where T: ?Sized,

§

impl<FD, T> !RefUnwindSafe for ValidationBuilder<FD, T>

§

impl<FD, T> Send for ValidationBuilder<FD, T>
where T: ?Sized,

§

impl<FD, T> Sync for ValidationBuilder<FD, T>
where T: ?Sized,

§

impl<FD, T> Unpin for ValidationBuilder<FD, T>
where T: ?Sized,

§

impl<FD, T> !UnwindSafe for ValidationBuilder<FD, T>

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<E, T, Request, Encoding> FromReq<Patch<Encoding>, Request, E> for T
where Request: Req<E> + Send + 'static, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_req(req: Request) -> Result<T, E>

Attempts to deserialize the arguments from a request.
Source§

impl<E, T, Request, Encoding> FromReq<Post<Encoding>, Request, E> for T
where Request: Req<E> + Send + 'static, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_req(req: Request) -> Result<T, E>

Attempts to deserialize the arguments from a request.
Source§

impl<E, T, Request, Encoding> FromReq<Put<Encoding>, Request, E> for T
where Request: Req<E> + Send + 'static, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_req(req: Request) -> Result<T, E>

Attempts to deserialize the arguments from a request.
Source§

impl<E, Encoding, Response, T> FromRes<Patch<Encoding>, Response, E> for T
where Response: ClientRes<E> + Send, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_res(res: Response) -> Result<T, E>

Attempts to deserialize the outputs from a response.
Source§

impl<E, Encoding, Response, T> FromRes<Post<Encoding>, Response, E> for T
where Response: ClientRes<E> + Send, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_res(res: Response) -> Result<T, E>

Attempts to deserialize the outputs from a response.
Source§

impl<E, Encoding, Response, T> FromRes<Put<Encoding>, Response, E> for T
where Response: ClientRes<E> + Send, Encoding: Decodes<T>, E: FromServerFnError,

Source§

async fn from_res(res: Response) -> Result<T, E>

Attempts to deserialize the outputs from a response.
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<E, T, Encoding, Request> IntoReq<Patch<Encoding>, Request, E> for T
where Request: ClientReq<E>, Encoding: Encodes<T>, E: FromServerFnError,

Source§

fn into_req(self, path: &str, accepts: &str) -> Result<Request, E>

Attempts to serialize the arguments into an HTTP request.
Source§

impl<E, T, Encoding, Request> IntoReq<Post<Encoding>, Request, E> for T
where Request: ClientReq<E>, Encoding: Encodes<T>, E: FromServerFnError,

Source§

fn into_req(self, path: &str, accepts: &str) -> Result<Request, E>

Attempts to serialize the arguments into an HTTP request.
Source§

impl<E, T, Encoding, Request> IntoReq<Put<Encoding>, Request, E> for T
where Request: ClientReq<E>, Encoding: Encodes<T>, E: FromServerFnError,

Source§

fn into_req(self, path: &str, accepts: &str) -> Result<Request, E>

Attempts to serialize the arguments into an HTTP request.
Source§

impl<E, Response, Encoding, T> IntoRes<Patch<Encoding>, Response, E> for T
where Response: TryRes<E>, Encoding: Encodes<T>, E: FromServerFnError + Send, T: Send,

Source§

async fn into_res(self) -> Result<Response, E>

Attempts to serialize the output into an HTTP response.
Source§

impl<E, Response, Encoding, T> IntoRes<Post<Encoding>, Response, E> for T
where Response: TryRes<E>, Encoding: Encodes<T>, E: FromServerFnError + Send, T: Send,

Source§

async fn into_res(self) -> Result<Response, E>

Attempts to serialize the output into an HTTP response.
Source§

impl<E, Response, Encoding, T> IntoRes<Put<Encoding>, Response, E> for T
where Response: TryRes<E>, Encoding: Encodes<T>, E: FromServerFnError + Send, T: Send,

Source§

async fn into_res(self) -> Result<Response, E>

Attempts to serialize the output into an HTTP response.
Source§

impl<T> SerializableKey for T

Source§

fn ser_key(&self) -> String

Serializes the key to a unique string. Read more
Source§

impl<T> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
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.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T