fmtastic

Crates.iofmtastic
lib.rsfmtastic
version0.2.2
created_at2023-05-25 20:12:53.405827+00
updated_at2026-01-13 11:22:37.111595+00
descriptionFormat numbers using the unicode characters via the Display trait.
homepage
repositoryhttps://codeberg.org/tautropfli/fmtastic
max_upload_size
id874579
size54,560
Tau Gärtli (tautropfli)

documentation

README

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!("n²", 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.

Commit count: 67

cargo fmt