| Crates.io | amonoid |
| lib.rs | amonoid |
| version | 0.1.2 |
| created_at | 2024-08-20 00:35:46.18209+00 |
| updated_at | 2024-12-26 17:16:25.702395+00 |
| description | A general-purpose monoid library |
| homepage | |
| repository | https://codeberg.org/T0mstone/amonoid |
| max_upload_size | |
| id | 1344674 |
| size | 64,145 |
A crate about monoids.
use amonoid::{Monoid, from_ops::Add};
use std::num::Saturating;
fn braid<M: Monoid + Clone>(a: M, b: M, n: usize) -> M {
M::combine_iter([a, b].iter().cloned().cycle().take(2 * n))
}
assert_eq!(braid(Add(Saturating(2)), Add(Saturating(3)), 5), Add(Saturating(25)));
assert_eq!(braid("b".to_string(), "a".to_string(), 2), "baba");