6 个版本
0.0.6 | 2020 年 9 月 22 日 |
---|---|
0.0.5 | 2020 年 9 月 11 日 |
0.0.1 | 2020 年 8 月 26 日 |
#2478 在 算法 中
在 5 个 crate 中使用(通过 taml)
14KB
79 行
lazy-transform-str
懒拷贝懒分配扫描 str
转换。
例如,用于(反)转义文本,特别是如果单个字符串较短时。
安装
请使用 cargo-edit 以始终添加此库的最新版本
cargo add lazy-transform-str
示例
use {
cervine::Cow,
gnaw::Unshift as _,
lazy_transform_str::{Transform as _, TransformedPart},
smartstring::alias::String,
};
fn double_a(str: &str) -> Cow<String, str> {
str.transform(|rest /*: &mut &str */| {
// Consume some of the input. `rest` is never empty here.
match rest.unshift().unwrap() {
'a' => TransformedPart::Changed(String::from("aa")),
_ => TransformedPart::Unchanged,
}
} /*: impl FnMut(…) -> … */ )
}
assert_eq!(double_a("abc"), Cow::Owned(String::from("aabc")));
assert_eq!(double_a("bcd"), Cow::Borrowed("bcd"));
许可证
在以下许可证中选择一项:
- Apache 许可证 2.0 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何旨在包含在作品中的有意贡献,如 Apache-2.0 许可证中定义的,均应按上述方式双重许可,而不附加任何额外条款或条件。
行为准则
变更日志
版本控制
lazy-transform-str
严格遵循 语义版本控制 2.0.0,但有以下例外
- 次要版本在主版本更改时不会重置为 0(除 v1 以外)。
视为全局功能级别。 - 修补版本在主版本或次要版本更改时不会重置为 0(除 v0.1 和 v1 以外)。
视为全局修补级别。
这包括上述指定的 Rust 版本要求。
早期 Rust 版本可能兼容,但可能会随着次要或修补版本而更改。
受功能和修补版本影响的版本可以从 CHANGELOG.md 中的相应标题确定。
依赖项
~160KB