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

LGPL-3.0-only

20KB
194

zsplit

LGPL 3.0 License Workflow Status Crates.io crev reviews

按行将文本分割成多个文件。

这是一个库,而不是 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");

Visualisation of simple

非对称分布

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");

Visualisation of unsymmetric distribution

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

无运行时依赖

功能