16 个版本
0.2.3 | 2023 年 9 月 16 日 |
---|---|
0.2.2 | 2023 年 7 月 15 日 |
0.2.1 | 2023 年 2 月 11 日 |
0.1.11 | 2022 年 12 月 17 日 |
0.1.0 | 2016 年 7 月 17 日 |
#63 in 文本处理
3,044,385 个月下载量
用于 353 个包 (79 直接)
10KB
99 行
取消缩进
此包提供了 indoc
的缩进逻辑,用于与编译时未知的字符串一起使用。对于取消字符串字面量的缩进,请使用 indoc
。
此包公开了两个函数
unindent(&str) ->String
unindent_bytes(&[u8]) -> Vec<u8>
use unindent::unindent;
fn main() {
let indented = "
line one
line two";
assert_eq!("line one\nline two", unindent(indented));
}
说明
以下规则描述了 unindent 的行为
- 计算每行的前导空格数量,忽略第一行以及任何只包含空格的空行。
- 取最小值。
- 如果第一行是空的,即字符串以换行符开始,则删除第一行。
- 从每行的开头移除计算出的空格数量。
这意味着存在几种等效的方式来格式化相同的字符串,因此请选择您喜欢的一种。以下所有方式都产生相同的字符串 "line one\nline two\n"
unindent(" / unindent( / unindent("line one
line one / "line one / line two
line two / line two / ")
") / ") /
许可证
根据您选择以下任意一种许可:
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您自行决定。
贡献
除非您明确声明,否则您提交的任何有意包含在 Indoc 中的贡献,根据 Apache-2.0 许可证的界定,应作为上述双许可使用,不附加任何额外条款或条件。