roman-literals

Crates.ioroman-literals
lib.rsroman-literals
version0.2.1
sourcesrc
created_at2022-08-26 21:44:17.426305
updated_at2022-08-28 18:33:42.231186
descriptionWrite integer literals using Roman numerals
homepagehttps://github.com/j-tai/roman-literals
repositoryhttps://github.com/j-tai/roman-literals
max_upload_size
id653068
size149,712
Jasmine Tai (j-tai)

documentation

https://docs.rs/roman-literals/*/roman-literals/

README

roman-literals

roman-literals provides an easy way to write integer literals using Roman numerals.

Features

  • Supports all integers from I to MMMCMXCIX (1 to 3999)
  • Type inference with the [roman!] macro
  • Zero cost!

Usage

  • Type aliases like [iXXXII] are provided to replace primitive types like [i32].

  • Using the [roman!] macro, the type of the literal is automatically inferred, with [iXXXII] being the default. The macro also supports negative numbers; see [roman!] for more details.

  • Constants are also provided, such as III_uXXXII. These constants are all suffixed with their type. See the [consts] module for more details.

Examples

use roman_literals::*; // roman! macro and type aliases

let forty_two: uXXXII = roman!(XLII);
assert_eq!(forty_two, 42);

let negative_3999: iXVI = roman!(-MMMCMXCIX);
assert_eq!(negative_3999, -3999);

use roman_literals::consts::*; // to get the constants

let negative_300 = -CCC_iLXIV; // i64
assert_eq!(negative_300, -300);

Why?

Why not?

Commit count: 7

cargo fmt