#unicode-characters #unicode #formatting #fraction #subscript #superscript

no-std fmtastic

Format numbers using the unicode characters via the Display trait

3 unstable releases

0.2.1 May 30, 2024
0.2.0 Jan 24, 2024
0.1.0 May 25, 2023

#64 in Value formatting

48 downloads per month
Used in four-bar

MIT/Apache

29KB
542 lines

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

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

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 dual licensed as above, without any additional terms or conditions.

No runtime deps