14 个版本 (2 个稳定版)
1.0.1 | 2022年3月24日 |
---|---|
1.0.0 | 2022年2月24日 |
0.2.10 | 2022年2月20日 |
0.2.9 | 2021年7月27日 |
0.1.0 | 2020年5月15日 |
在 数据结构 中排名 #40
每月下载量604,169
用于 852 个crate (109 个直接使用)
88KB
2K SLoC
smartstring
紧凑的内联字符串。
总结
与 std::string::String
兼容的字符串类型,占用相同大小的空间,对于短字符串(在64位架构上最多23字节)不进行堆分配,通过存储在 String
应该在栈上占用的空间来存储它们,从而使字符串整体运行更快。
概述
此crate为Rust的标准 String
提供了一个包装器,它使用 String
在栈上占用的空间来存储内联字符串数据,当字符串超出内联容量时自动将其提升为 String
。这避免了短字符串的堆分配,并由于字符串保持在栈上而提高了性能。
所有这些操作都不需要外部区分符,因此 SmartString
的大小与 String
在栈上的大小完全相同,无论它是内联的还是不是。将堆分配的 SmartString
转换为 String
以及相反的操作也是零成本操作,因为将重用另一个的分配内存。
文档
许可证
版权所有2020 Bodil Stokke
此软件受Mozilla公共许可证第2.0版条款约束。如果没有随此文件一起分发MPL副本,您可以在 http://mozilla.org/MPL/2.0/ 获得一份。
行为准则
请注意,该项目以 贡献者行为准则 发布。通过参与此项目,您同意遵守其条款。
依赖项
~38–660KB
~13K SLoC