# `Rust Aviary` This crate is a reimplementation of Haskell's Data.Aviary combinators in Rust. ## Installation Add the following to the `[dependencies]` section of your Cargo.toml: ```toml aviary = "0.1.0" ``` ## Documentation Available at [docs.rs](https://docs.rs/aviary/) ## Example: Palindrome checker Let's define some helper functions: ```rust let eq = &(|x: String, y: String| PartialEq::eq(&x, &y)) as &Fn(String, String) -> bool; let reverse = |x: String| x.chars().rev().collect::(); ``` And make a function using the [starling combinator](https://docs.rs/aviary/0.1.0/aviary/fn.starling.html): ```rust let is_palindrome = starling(&eq, &reverse); ``` Make sure our function is correct: ```rust assert!(is_palindrome("nisumaa oli isäsi ilo aamusin".to_string())); ``` ## Contributing Any contributions are welcome.