2个版本
使用旧的Rust 2015
0.1.1 | 2018年4月15日 |
---|---|
0.1.0 | 2018年4月15日 |
#10 in #lower
9KB
174 行
uuidtoa
优化了带有连字符的UUID ASCII表示的序列化到io::Write
输出。
此crate导出的两个函数是write_lower
和write_upper
;以下是它们的签名
fn write_lower<W: io::Write>(io: &mut W, uuid: &Uuid) -> io::Result<usize>;
fn write_upper<W: io::Write>(io: &mut W, uuid: &Uuid) -> io::Result<usize>;
将内容写入缓冲区的示例
let uuid = Uuid::from_str("e098d1f6-7e49-4c34-99f6-e9c6cef8fcce").unwrap();
let mut buf: Vec<u8> = Vec::with_capacity(36);
write_lower(&mut buf, &uuid).unwrap();
这比来自uuid crate的等效fmt::Display
实现快约10倍。
let uuid = Uuid::from_str("e098d1f6-7e49-4c34-99f6-e9c6cef8fcce").unwrap();
let buf = format!("{}", uuid.hyphenated());
这两种方法的基准测试结果如下。
test benches::bench_fmt ... bench: 522 ns/iter (+/- 6)
test benches::bench_lower ... bench: 45 ns/iter (+/- 0)
要自己运行,请使用bench特性和nightly编译器。
cargo bench --feature bench
依赖项
~255KB