#text #newline #text-input #stream #line #ending

linurgy

操作多个换行符的输出。使用文本替换/插入/附加换行符。从stdio/files/buffers输入输出

9个版本 (5个重大更新)

0.6.0 2022年10月20日
0.5.0 2022年8月12日
0.4.1 2022年8月12日
0.4.0 2020年2月21日
0.1.0 2019年7月29日

#839 in 文本处理

每月下载 29次

MIT/Apache

34KB
610

linurgy

Crates.io msrv 1.32 tests Documentation license

Rust库,用于操作多个换行符。

使用您编辑的文本创建一个新的 String,或使用缓冲区将输入和输出管道输入到 Editor。此库没有其他依赖项。

使用linurgy

使用方便的 factory 函数之一构建可重用的 Editor。使用 edit 方法创建一个新的 String

use linurgy::factory;

// appends an underscore "_" every 2 newlines "\n\n" => "\n\n_"
let editor = factory::appender("_", 2);
let output = editor.edit("foo\n\n");
assert_eq!("foo\n\n_", output);

通过使用 edit_buffered 方法将 stdin 操作为 stdout。这也适用于文件、Cursor 或实现 BufRead 的任何其他东西。

use linurgy::factory;
use std::io::{BufReader, Result, stdin, stdout};

// doubles every newline "\n" => "\n\n"
let editor = factory::appender("\n", 1);
// create a buffer over stdin
let mut input = BufReader::new(stdin());
// pipe input into editor and output to stdout
editor.edit_buffered(&mut input, &mut stdout())?;

处理LF \n 或 CRLF \r\n 行结束符。有用于CRLF输入的 factory 函数。

use linurgy::factory;

// inserts a "*" before 2 newlines "\r\n\r\n" => "*\r\n\r\n"
let editor = factory::inserter_crlf("*", 2);
let output = editor.edit("foo\r\nbar\r\n\r\n");
// notice there is only an asterisk before the double newline
assert_eq!("foo\r\nbar*\r\n\r\n", output);

更多示例

贡献

非常感谢您考虑为此项目做出贡献!

我们欢迎任何形式的贡献

  • 新问题(功能请求、错误报告、问题、想法、...)
  • 拉取请求(文档改进、代码改进、新功能、...)

注意:在您花费时间打开拉取请求之前,请先打开一个问题。

有关详细信息,请参阅 CONTRIBUTING.md

许可证

Linurgy根据MIT许可证和Apache许可证(版本2.0)的条款分发。

有关详细信息,请参阅 LICENSE-APACHELICENSE-MIT

无运行时依赖项