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

Download history 162697/week @ 2024-03-14 164903/week @ 2024-03-21 177541/week @ 2024-03-28 164868/week @ 2024-04-04 170690/week @ 2024-04-11 165831/week @ 2024-04-18 133204/week @ 2024-04-25 134491/week @ 2024-05-02 135534/week @ 2024-05-09 145059/week @ 2024-05-16 139975/week @ 2024-05-23 146873/week @ 2024-05-30 149337/week @ 2024-06-06 156628/week @ 2024-06-13 149170/week @ 2024-06-20 119864/week @ 2024-06-27

每月下载量604,169
用于 852 个crate (109 个直接使用)

MPL-2.0+

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