Rustica

A functional programming library for Rust.

Overview

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.

Features

Documentation

For detailed API documentation, visit the API documentation.

Getting Started

Add Rustica to your Cargo.toml:


[dependencies]
rustica = "0.5.4"
        

Example


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)
}