Expand description
Applicative functor. Allows application of a function in an Applicative context to a value in an Applicative context.
§Examples
use rust2fun::prelude::*;
fn validate_number(number: CreditCardNumber) -> Result<CreditCardNumber, Error> {
unimplemented!("Validate credit card number")
}
fn validate_expiration(date: Date) -> Result<Date, Error> {
unimplemented!("Validate credit card expiration date")
}
fn validate_cvv(cvv: Code) -> Result<Code, Error> {
unimplemented!("Validate credit card cvv")
}
fn validate_credit_card(
number: CreditCardNumber,
expiration: Date,
cvv: Code,
) -> Result<CreditCard, Error> {
Result::pure(CreditCard::new)
.ap3(validate_number(number),
validate_expiration(expiration),
validate_cvv(cvv))
}
Traits§
- Applicative
- Applicative functor. This is a stronger version of Apply that has pure. See the module level documentation for more.