5个版本
使用旧的Rust 2015
0.1.5 | 2018年7月28日 |
---|---|
0.1.4 | 2018年5月17日 |
0.1.3 | 2018年5月14日 |
0.1.2 | 2018年5月7日 |
0.1.1 | 2018年5月6日 |
#166 在 FFI
每月24次下载
在 carrier 中使用
21KB
456 行
cluProcCmdline
快速安全解析/proc/cmdline。
使用DefaultIter
1
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::this_machine().unwrap();
for (name, value) in cmdline.iter() {
if let Some(name) = name {
println!(
"Cmdline_str: {} {}",
String::from_utf8(name.to_vec()).unwrap(),
String::from_utf8(value.to_vec()).unwrap()
);
}
// OUTPUT:
// IF /proc/cmdline = "BOOT_IMAGE=/boot/vmlinuz-linux-zen nmi_watchdog=0"
// TO -> "Cmdline_str: BOOT_IMAGE /boot/vmlinuz-linux-zen"
// TO -> "Cmdline_str: nmi_watchdog 0"
}
2
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::array_slice(b"test=all rw");
let mut iter = cmdline.iter();
while let Some((Some(name), value)) = iter.next() {
println!("{} {}",
String::from_utf8(name.to_vec()).unwrap(),
String::from_utf8(value.to_vec()).unwrap()
);
// OUTPUT:
// rw
}
使用OneIter
1
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::array_slice(b"test=all rw");
for value in cmdline.iter_one() {
println!("{}",
String::from_utf8(value.to_vec()).unwrap()
);
// OUTPUT:
// rw
}
2
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::array_slice(b"test=all rw");
let mut iter = cmdline.iter_one();
while let Some(value) = iter.next() {
println!("{}",
String::from_utf8(value.to_vec()).unwrap()
);
// OUTPUT:
// rw
}
使用TwoIter
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::array_slice(b"test=all rw");
for (value, name) in cmdline.iter_two() {
println!("{} {}",
String::from_utf8(name.to_vec()).unwrap(),
String::from_utf8(value.to_vec()).unwrap()
);
// OUTPUT:
// test all
}
哈希proc cmdline
use cluproccmdline::Cmdline;
let mut cmdline = cluproccmdline::array_slice(b"test=all rw");
assert_eq!(cmdline.cmdline_hash(), 1877887864476248772);
基准测试
机器:Intel Core 2 Duo (2000 MHz),2 Gb DDR2
test tests::bench_oneslice_new ... bench: 101 ns/iter (+/- 14)
test tests::bench_slice_new ... bench: 105 ns/iter (+/- 23)
许可证
版权所有 2018 #UlinProject Денис Котляров
根据Apache License,版本2.0许可