Enum frunk::validated::Validated [−][src]
Expand description
A Validated is either an Ok holding an HList or an Err, holding a vector of collected errors.
Variants
Err(Vec<E>)
Implementations
Turns this Validated into a Result.
If this Validated is Ok, it will become a Result::Ok, holding an HList of all the accumulated results. Otherwise, it will become a Result::Err with a list of all accumulated errors.
Examples
#[macro_use] extern crate frunk; use frunk::Validated; use frunk::prelude::*; #[derive(PartialEq, Eq, Debug)] struct Person { age: i32, name: String, } fn get_name() -> Result<String, String> { Result::Ok("James".to_owned()) } fn get_age() -> Result<i32, String> { Result::Ok(32) } let v = get_name().into_validated() + get_age(); let person = v.into_result() .map(|hlist_pat!(name, age)| { Person { name: name, age: age, } }); assert_eq!(person.unwrap(), Person { name: "James".to_owned(), age: 32, });Run
Trait Implementations
Implements Add for the current Validated with a Result, returning a new Validated.
Examples
use frunk::Validated; use frunk::prelude::*; let r1: Result<String, String> = Result::Ok(String::from("hello")); let r2: Result<i32, String> = Result::Ok(1); let v = r1.into_validated() + r2; assert_eq!(v, Validated::Ok(hlist!(String::from("hello"), 1)))Run
Implements Add for the current Validated with another Validated, returning a new Validated.
Examples
use frunk::Validated; use frunk::prelude::*; let r1: Result<String, String> = Result::Ok(String::from("hello")); let r2: Result<i32, String> = Result::Ok(1); let v1 = r1.into_validated(); let v2 = r2.into_validated(); let v3 = v1 + v2; assert_eq!(v3, Validated::Ok(hlist!(String::from("hello"), 1)))Run
impl<T: PartialOrd, E: PartialOrd> PartialOrd<Validated<T, E>> for Validated<T, E> where
T: HList,
impl<T: PartialOrd, E: PartialOrd> PartialOrd<Validated<T, E>> for Validated<T, E> where
T: HList,
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl<T, E> RefUnwindSafe for Validated<T, E> where
E: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, E> UnwindSafe for Validated<T, E> where
E: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more