#vec #try-reserve #with-capacity #into-raw-parts

with_capacity_safe

Vec::with_capacity 与 into_raw_parts 的安全替代方案,可用于稳定版本

6 个版本 (3 个重大变更)

0.4.2 2021 年 12 月 3 日
0.4.1 2021 年 12 月 3 日
0.4.0 2021 年 11 月 12 日
0.3.0 2021 年 2 月 24 日
0.1.0 2021 年 2 月 17 日

Rust 模式 中排名 #1818

Download history 37/week @ 2024-03-14 55/week @ 2024-03-21 83/week @ 2024-03-28 36/week @ 2024-04-04 42/week @ 2024-04-11 38/week @ 2024-04-18 49/week @ 2024-04-25 36/week @ 2024-05-02 38/week @ 2024-05-09 39/week @ 2024-05-16 35/week @ 2024-05-23 36/week @ 2024-05-30 25/week @ 2024-06-06 36/week @ 2024-06-13 47/week @ 2024-06-20 19/week @ 2024-06-27

每月下载量 134
15crate中使用(直接使用 9 个)

MIT 许可证

6KB

当容量过大时,Vec::with_capacity(capacity) 会引发恐慌/中止。

这是一个更安全的替代方案,使用 try_reserve_exact 报告错误

//let's pretend this is an arbitrary number read from a broken file
let number_from_file : usize = 100_000_000_000_000;

//try to create a 100TB Vec
let result : Result<Vec<u8>, _> = vec_with_capacity_safe(number_from_file);

//An error is reported
assert!(result.is_err());

vec_into_raw_parts 将 Vec 分解为原始组件

支持的 Rust 最低版本

1.57.0(稳定版)

变更日志

0.4.2 TryReserve 在 Rust 1.57.0 中稳定

0.3.0

  • 移除了 WcsErrorType **** 破坏性变更 ****
  • 将 WcsError 改回枚举。 **** 破坏性变更 ****
  • 为 WcsError 添加了 try_reserve_error() 方法

0.2.0

  • 添加了一些文档。
  • 将实现改为 try_reserve_exact(),以防万一。
  • 移除了 WcsError::new **** 破坏性变更 ***

无运行时依赖