Crates.io | amonoid |
lib.rs | amonoid |
version | |
source | src |
created_at | 2024-08-20 00:35:46.18209 |
updated_at | 2024-12-26 17:16:25.702395 |
description | A general-purpose monoid library |
homepage | |
repository | https://codeberg.org/T0mstone/amonoid |
max_upload_size | |
id | 1344674 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
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");