6 个版本 (3 个破坏性更新)
0.4.0 | 2023年11月23日 |
---|---|
0.3.0 | 2023年1月10日 |
0.2.1 | 2022年1月2日 |
0.2.0 | 2021年12月25日 |
0.1.0 | 2021年11月30日 |
#380 in 文件系统
用于 zsplit-cli
20KB
194 行
zsplit
按行将文本分割成多个文件。
这是一个库,而不是 CLI 应用程序。它被称为 zsplit-cli
。
示例
简单
use zsplit::prelude::*;
let data = "0\n1\n2\n3\n4\n5\n6\n7\n8\n9";
let mut source = std::io::BufReader::new(data.as_bytes());
let mut destinations = vec![
Destination::buffer(), // first_destination
Destination::buffer(), // second_destination
Destination::buffer(), // third_destination
];
split_round_robin(&mut source, &mut destinations).unwrap();
let third_destination = destinations.pop().unwrap();
let second_destination = destinations.pop().unwrap();
let first_destination = destinations.pop().unwrap();
assert_eq!(first_destination.into_utf8_string().unwrap(), "0\n3\n6\n9");
assert_eq!(second_destination.into_utf8_string().unwrap(), "1\n4\n7\n");
assert_eq!(third_destination.into_utf8_string().unwrap(), "2\n5\n8\n");
非对称分布
use zsplit::prelude::*;
let data = "0\n1\n2\n3\n4\n5\n6\n7\n8\n9";
let mut source = std::io::BufReader::new(data.as_bytes());
let mut destinations = vec![
Destination::buffer_with_lines(3), // first_destination
Destination::buffer_with_lines(3), // second_destination
Destination::buffer(), // third_destination
];
split_round_robin(&mut source, &mut destinations).unwrap();
let third_destination = destinations.pop().unwrap();
let second_destination = destinations.pop().unwrap();
let first_destination = destinations.pop().unwrap();
assert_eq!(first_destination.into_utf8_string().unwrap(), "0\n1\n2\n7\n8\n9\n");
assert_eq!(second_destination.into_utf8_string().unwrap(), "3\n4\n5\n");
assert_eq!(third_destination.into_utf8_string().unwrap(), "6\n");
CREV - Rust 代码审查 - 提高意识
请,传播这个信息!
开源代码需要一个社区的努力来表达其可信度。
从阅读你使用的 crates 的审查开始。例如:web.crev.dev/rust-reviews/crate/num-traits/
然后安装 CLI cargo-crev。阅读入门指南。
在你的 Rust 项目中,使用 cargo crev verify
验证所有依赖项的可信度,包括临时依赖项。
写一个新的审查!
描述你信任的 crates。或者警告你认为有危险版本的 crate。
帮助其他开发者,通知他们并分享你的观点。
使用本网页上的辅助工具:web.crev.dev/rust-reviews/review_new