1
Fork 0
romantic/README.md

1.4 KiB

Romantic

Roman numeral toolkit

API

For full documentation see docs.rs.

Examples

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 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());

License

This project is licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.