fmtastic 0.2.2

Format numbers using the unicode characters via the Display trait.
Documentation
  • Coverage
  • 100%
    14 out of 14 items documented10 out of 12 items with examples
  • Size
  • Source code size: 54.03 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 4.29 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • tautropfli

fmtastic ✨

Docs Crate Version

A fantastic, #![no_std]-friendly crate for fmting numbers using the appropriate unicode characters via the Display trait. ✨ Format as vulgar fractions, super- and subscript and more.

Contributions are welcome for more formats.

Features

Vulgar Fractions

Creates beautiful unicode fractions like ¼ or ¹⁰⁄₃.

use fmtastic::VulgarFraction;

assert_eq!("¹⁰⁄₃", format!("{}", VulgarFraction::new(10, 3)));
assert_eq!("¼", format!("{}", VulgarFraction::new(1, 4)));

Sub- and superscript

Formats integers as sub- or superscript.

use fmtastic::{Subscript, Superscript};

assert_eq!("x₁", format!("x{}", Subscript(1)));
assert_eq!("", format!("n{}", Superscript(2)));

Roman Numerals

Formats unsigned integers as Roman numerals.

use fmtastic::Roman;

assert_eq!("ⅾⅽⅽⅼⅹⅹⅹⅰⅹ", format!("{:#}", Roman::new(789_u16).unwrap())); // lowercase
assert_eq!("ⅯⅯⅩⅩⅠⅤ", format!("{}", Roman::new(2024_u16).unwrap()));
assert_eq!("MMXXIV", format!("{}", Roman::new(2024_u16).unwrap().ascii())); // ascii
assert_eq!("ⅠⅠⅠ", format!("{}", Roman::from(3_u8))); // u8's can always be formatted as Roman numeral

Seven-Segment Digits

Formats an unsigned integer using seven-segment digits from the Legacy Computing block.

use fmtastic::Segmented;

assert_eq!("🯶🯲🯸", format!("{}", Segmented(628_u32)));

Outlined

Formats an unsigned integer using outlined digits from the Legacy Computing Supplement block.

use fmtastic::Outlined;

assert_eq!("𜳶𜳲𜳸", format!("{}", Outlined(628_u32)));

Tally Marks

Formats an unsigned integer as tally marks.

use fmtastic::TallyMarks;

assert_eq!("𝍷𝍷𝍷", TallyMarks(3_u32).to_string());
assert_eq!("𝍸𝍸𝍷𝍷", TallyMarks(12_u32).to_string());

Ballot Box

Formats a boolean as a ballot box.

use fmtastic::BallotBox;

assert_eq!("☑ Buy bread", format!("{} Buy bread", BallotBox(true)));
assert_eq!("☐ Do the dishes", format!("{} Do the dishes", BallotBox(false)));
assert_eq!("☒ Laundry", format!("{:#} Laundry", BallotBox(true)));

Docs

License

Licensed under either of

at your option.

Contribution

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