#no-std #interface #convert #textual #representation #string #value

no-std to-str

高效地将值转换为文本表示的接口

1个稳定版本

1.0.0 2020年5月10日

#277 in 值格式化

BSL-1.0 许可证

18KB
318

to-str

Crates.io Documentation

用于高效转换为字符串的泛型特质。适用于no_std

性能

取决于ToStr实现,但通常默认实现是Rust核心fmt的高效替代品

整数

灵感来自C++的fmtitoa

总体性能接近itoa,但由于一些未优化的机会(可能是由于ToStr中的切片)而略逊一筹。

itoa不同,实现避免了针对整数类型的泛型,而是使用针对u8u64u128类型的通用函数


lib.rs:

no_std友好的字符串转换接口

type Buffer = to_str::Buffer64;

let mut buf = String::new();
let _ = buf.push_str(Buffer::fmt(5usize).as_str());
assert_eq!(buf, "5");

buf.push_str(Buffer::fmt(0usize).as_str());
assert_eq!(buf, "50");
buf.push_str(Buffer::fmt(&5usize).as_str());
assert_eq!(buf, "505");
buf.push_str(Buffer::fmt(&mut 0usize).as_str());
assert_eq!(buf, "5050");

无运行时依赖