Expand description
§Dactyl
This crate provides a fast interface to “stringify” unsigned integers, formatted with commas at each thousand. It prioritizes speed and simplicity over configurability.
If your application just wants to quickly turn 1010 into "1,010", Dactyl is a great choice. If your application requires locale awareness or other options, something like num-format would probably make more sense.
Similar to itoa, Dactyl writes ASCII conversions to a temporary buffer, but does so using fixed arrays sized for each type’s maximum value, minimizing the allocation overhead for, say, tiny little u8s.
Each type has its own struct, each of which works exactly the same way:
NiceU8NiceU16NiceU32NiceU64(also coversusize)NiceFloatNiceClock(for durations)NiceElapsed(also for durations)NicePercent(for floats representing percentages)
The intended use case is to simply call the appropriate from() for the type, then use either the as_str() or as_bytes() struct methods to retrieve the output in the desired format. Each struct also implements traits like Deref, Display, AsRef<str>, AsRef<[u8]>, etc., if you prefer those.
use dactyl::NiceU16;
assert_eq!(NiceU16::from(11234_u16).as_str(), "11,234");
assert_eq!(NiceU16::from(11234_u16).as_bytes(), b"11,234");But the niceness doesn’t stop there. Dactyl provides several other structs, methods, and traits to performantly work with integers, such as:
NoHash: a passthrough hasher for integerHashSet/HashMapcollectionstraits::BytesToSigned: signed integer parsing from byte slicestraits::BytesToUnsigned: unsigned integer parsing from byte slicestraits::HexToSigned: signed integer parsing from hextraits::HexToUnsigned: unsigned integer parsing from hex
Modules§
- traits
- Dactyl: Traits
Macros§
- total_
cmp - “Total” Float Comparison.
Structs§
- Nice
Clock - Nice Clock.
- Nice
Elapsed - This is a very simple struct for efficiently converting a given number of
seconds (
u32) into a nice, human-readable Oxford-joined byte string, like3 hours, 2 minutes, and 1 second.
Enums§
- Float
Kind - Float Type.
Type Aliases§
- Nice
Float NiceFloatprovides a quick way to convert anf32orf64(up to the absolute equivalent ofu64::MAX) into a formatted byte string for e.g. printing.- Nice
Percent NicePercentprovides a quick way to convert anf32orf64percent — a value0.0..=1.0— into a formatted byte string for e.g. printing.- NiceU8
NiceU8provides a quick way to convert au8into a formatted byte string for e.g. printing.- NiceU16
NiceU16provides a quick way to convert au16into a formatted byte string for e.g. printing. Commas are added for every thousand.- NiceU32
NiceU32provides a quick way to convert au32into a formatted byte string for e.g. printing. Commas are added for every thousand.- NiceU64
NiceU64provides a quick way to convert au64into a formatted byte string for e.g. printing. Commas are added for every thousand.- NoHash
- No-Hash (Passthrough) Hash State.