1 个不稳定版本

0.1.0 2021年10月15日

#2361数据结构

MIT 许可证

15KB
241

quetta

Crate API License

(来自昆雅语中的“单词”)是一个提供简单不可变字符串的Rust库。本质上,它是对 Arc<str> 的封装,但支持切片和与 &str 的兼容性功能。

提供的主要类型是 quetta::Text,它是一个拥有字符串(不可变和原子引用计数的原子)或是对一个的切片。

动机

Rust中的字符串相对难以使用(与Java、C#、OCaml等高级语言相比)。对于处理字符串,有两个常见的选择

  1. 使用拥有的 String

    • 易于传递
    • 需要频繁克隆,可能效率不高
    • 是可变的
    • 子字符串/切片会创建一个借用 &str 或导致复制
  2. 使用字符串切片 &str

    • 需要频繁的生存期注解
    • 需要保留拥有 String 的字符串
    • 可以很容易地进行切片

quetta::Text 旨在使处理字符串更加容易,特别是对于需要处理和传递文本的应用程序,如GUI应用程序和编译器。

用法

将此添加到您的 Cargo.toml

[dependencies]
quetta = "0.1.0"

示例

use quetta::Text;

let t: Text = Text::new("a.b.c");
let s1: Text = t.slice(0, 2);
assert_eq!("a.", s1.as_str());

有关更多示例,请参阅 文档 或查看 代码

无运行时依赖项