2 个版本
0.1.1 | 2023 年 9 月 24 日 |
---|---|
0.1.0 | 2023 年 9 月 23 日 |
#2368 在 算法
用于 config-it
37KB
722 行
strseq:Rust 中的不可变字符串分割
strseq
是一个 Rust 库,旨在高效处理多个不可变字符串片段。它采用了一种简洁的方法来表示字符串层次结构,无需进行常量分隔符检查或为单个标记分配不同的字符串。
特性
-
使用
StringSequence
的紧凑存储:- 在单个线性缓冲区中存储多个字符串。
- 跨度信息(开始,结束)位于缓冲区的前端。
- 实际的字符串内容填充缓冲区的其余部分。
-
使用
SharedStringSequence
共享序列:- 与
StringSequence
类似。 - 引用计数,允许在上下文中进行低成本的克隆和共享。
- 与
-
使用
MutableStringSequence
进行可变操作:- 包含两个不同的动态缓冲区:一个用于索引,另一个用于文本。
- 支持高效的突变,如 pop、push 和 insert。
用例
- 分层路径表示。
- 基于标记的系统,其中为每个标记分配单独的字符串是不高效的。
入门
在您的 Cargo.toml
中,添加以下内容
strseq = "0.1.0"
特性
serde
:启用使用 Serde 序列化和反序列化StringSequence
、SharedStringSequence
和MutableStringSequence
。
Serde 表示
所有定义的结构都表示为字符串列表。
反馈
我们欢迎对我们的 GitHub 仓库 提供贡献、反馈和问题。
依赖项
~175KB