A functional programming library for Rust.
Rustica provides functional programming abstractions and data types for Rust, inspired by functional programming languages and libraries like Haskell, Scala's Cats, and TypeScript's fp-ts.
Functor
, Applicative
, and Monad
Validated
for error accumulationFor detailed API documentation, visit the API documentation.
Add Rustica to your Cargo.toml:
[dependencies]
rustica = "0.5.4"
use rustica::prelude::*;
use rustica::data::validated::Validated;
fn main() {
// Create valid and invalid values
let valid: Validated<&str, i32> = Validated::valid(42);
let invalid: Validated<&str, i32> = Validated::invalid("Error message");
// Map over the values
let mapped = valid.fmap(|x| x * 2);
println!("{:?}", mapped); // Valid(84)
}