#string #no-std

no-std tinyvec_string

基于 tinyvec 的字符串类型

8次发布

0.3.2 2022年1月4日
0.3.1 2022年1月4日
0.3.0 2021年1月2日
0.2.0 2020年12月28日
0.1.3 2020年7月17日

#2122 in 数据结构

Download history 31/week @ 2024-03-09 15/week @ 2024-03-16 5/week @ 2024-03-23 28/week @ 2024-03-30 16/week @ 2024-04-06 21/week @ 2024-04-13 38/week @ 2024-04-20 6/week @ 2024-04-27 11/week @ 2024-05-04 33/week @ 2024-05-11 49/week @ 2024-05-18 68/week @ 2024-05-25 43/week @ 2024-06-01 43/week @ 2024-06-08 24/week @ 2024-06-15 8/week @ 2024-06-22

122 每月下载
用于 sanitise-file-name

MIT/Apache

110KB
1.5K SLoC

crates.io docs.rs Tests

tinyvec_string

tinyvec 基于的字符串类型。

查看 docs.rs 文档

tinyvec_string 提供两种字符串类型

  • ArrayString,使用 ArrayVec 在栈上使用固定大小的数组的字符串
  • TinyString,使用栈上固定大小的数组或堆上的 Vec 的字符串

功能

tinyvec 一样,tinyvec_string 默认是 no_std

ArrayString 没有依赖项(除了 tinyveccore)。

TinyString 需要启用 alloc cargo 功能,因为它依赖于 alloc

[dependencies]
tinyvec_string = { version = "0.3.2", features = ["alloc"] }

当启用 std 功能时,错误类型实现了 std::error::Error

rustc_1_40 功能启用 tinyvecrustc_1_40 功能,该功能为 Rust >= 1.40 版本启用了一些优化。

rustc_1_55 功能启用 const 泛型以允许使用任何大小的后端数组。

rustc_1_57 功能启用 TinyString::try_reserveTinyString::try_reserve_exact

安全性

此crate力求尽可能安全。几乎所有内部 unsafe 代码都是直接从 stdString 实现复制,以确保最大可靠性和性能。

MSRV

tinyvec 一样,tinyvec_string(不带 rustc 版本功能)支持 Rust 1.34+。需要 alloc 功能时,需要 Rust 1.36+。

贡献

如果您遇到问题,请随时提交一个问题,如果您有解决方案,请提交一个拉取请求。您也可以在Rust社区Discord服务器 @ThatsNoMoon#0175联系我。

许可证

tinyvec_string采用Apache-2.0和MIT双许可。大量代码、文档和测试是从rust-lang/rust直接复制或修改复制的;此类内容的版权属于原作者。

依赖项

~190–420KB
~14K SLoC