[−][src]Enum frunk::validated::Validated
A Validated is either an Ok holding an HList or an Err, holding a vector of collected errors.
Variants
Ok(T)
Err(Vec<E>)
Methods
impl<T, E> Validated<T, E> where
T: HList,
[src]
T: HList,
pub fn is_ok(&self) -> bool
[src]
Returns true if this validation is Ok, false otherwise
Examples
use frunk::Validated; use frunk::prelude::*; let r1: Result<String, String> = Result::Ok(String::from("hello")); let v = r1.into_validated(); assert!(v.is_ok());Run
pub fn is_err(&self) -> bool
[src]
Returns true if this validation is Err, false otherwise
Examples
use frunk::prelude::*; let r1: Result<String, i32> = Result::Err(32); let v = r1.into_validated(); assert!(v.is_err());Run
pub fn into_result(self) -> Result<T, Vec<E>>
[src]
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
impl<T: Eq, E: Eq> Eq for Validated<T, E> where
T: HList,
[src]
T: HList,
impl<T: Clone, E: Clone> Clone for Validated<T, E> where
T: HList,
[src]
T: HList,
fn clone(&self) -> Validated<T, E>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<T: PartialOrd, E: PartialOrd> PartialOrd<Validated<T, E>> for Validated<T, E> where
T: HList,
[src]
T: HList,
fn partial_cmp(&self, other: &Validated<T, E>) -> Option<Ordering>
[src]
fn lt(&self, other: &Validated<T, E>) -> bool
[src]
fn le(&self, other: &Validated<T, E>) -> bool
[src]
fn gt(&self, other: &Validated<T, E>) -> bool
[src]
fn ge(&self, other: &Validated<T, E>) -> bool
[src]
impl<T: PartialEq, E: PartialEq> PartialEq<Validated<T, E>> for Validated<T, E> where
T: HList,
[src]
T: HList,
fn eq(&self, other: &Validated<T, E>) -> bool
[src]
fn ne(&self, other: &Validated<T, E>) -> bool
[src]
impl<T: Ord, E: Ord> Ord for Validated<T, E> where
T: HList,
[src]
T: HList,
fn cmp(&self, other: &Validated<T, E>) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
impl<T: Hash, E: Hash> Hash for Validated<T, E> where
T: HList,
[src]
T: HList,
fn hash<__HTE: Hasher>(&self, state: &mut __HTE)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<T, E, T2> Add<Result<T2, E>> for Validated<T, E> where
T: HList + Add<HCons<T2, HNil>>,
<T as Add<HCons<T2, HNil>>>::Output: HList,
[src]
T: HList + Add<HCons<T2, HNil>>,
<T as Add<HCons<T2, HNil>>>::Output: HList,
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
type Output = Validated<<T as Add<HCons<T2, HNil>>>::Output, E>
The resulting type after applying the +
operator.
fn add(self, other: Result<T2, E>) -> Self::Output
[src]
impl<T, E, T2> Add<Validated<T2, E>> for Validated<T, E> where
T: HList + Add<T2>,
T2: HList,
<T as Add<T2>>::Output: HList,
[src]
T: HList + Add<T2>,
T2: HList,
<T as Add<T2>>::Output: HList,
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
type Output = Validated<<T as Add<T2>>::Output, E>
The resulting type after applying the +
operator.
fn add(self, other: Validated<T2, E>) -> Self::Output
[src]
impl<T: Debug, E: Debug> Debug for Validated<T, E> where
T: HList,
[src]
T: HList,
Auto Trait Implementations
impl<T, E> Send for Validated<T, E> where
E: Send,
T: Send,
E: Send,
T: Send,
impl<T, E> Sync for Validated<T, E> where
E: Sync,
T: Sync,
E: Sync,
T: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<Choices> CoproductSubsetter for Choices
[src]
type Remainder = Choices
fn subset(
self
) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>
[src]
self
) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>
impl<Source> Sculptor for Source
[src]
impl<T, U, I> LiftInto for T where
U: LiftFrom<T, I>,
[src]
U: LiftFrom<T, I>,