Crates.io | romantic |
lib.rs | romantic |
version | 0.1.2 |
source | src |
created_at | 2022-04-10 14:14:26.618206 |
updated_at | 2024-01-25 12:30:10.040676 |
description | Roman numeral toolkit |
homepage | |
repository | https://git.bauke.xyz/Holllo/romantic |
max_upload_size | |
id | 565107 |
size | 31,843 |
Roman numeral library for Rust.
For full documentation see docs.rs.
Using the default Roman numeral system.
use romantic::Roman;
let roman = Roman::default();
assert_eq!(roman.to_string(2022).unwrap(), "MMXXII");
assert_eq!(roman.from_str::<i32>("MMXXII").unwrap(), 2022);
// The default Roman numeral system has a maximum of 3999.
assert!(roman.to_string(4000).is_err());
Using your own custom character set.
use romantic::Roman;
// The order of characters in the array determines their value.
// Here, A equals 1 and B equals 5.
let custom = Roman::new(&['A', 'B']);
assert_eq!(custom.to_string(6).unwrap(), "BA");
assert_eq!(custom.from_str::<i32>("BA").unwrap(), 6);
// With only 2 characters, the maximum value you can get is 8
// (the equivalent of VIII). To increase the maximum range, use
// more characters.
assert!(custom.to_string(9).is_err());
With Nix flakes and direnv installed and enabled, all the required dependencies are automatically loaded from shell.nix
. Then cargo-make can be used to build, deploy and lint the code. The available tasks are all described in the Makefile.toml
configuration.
Found a problem or want to request a new feature? Email helllo@holllo.org and I'll see what I can do for you.
Distributed under the Apache License 2.0 and MIT licenses, see LICENSE-Apache and LICENSE-MIT for more information.