#vec #transmute #pod

no-std transvec

一个用于安全转换 Vec 的 crate

10 个版本

0.3.7 2021 年 11 月 7 日
0.3.6 2021 年 8 月 21 日
0.3.5 2021 年 7 月 30 日
0.2.4 2021 年 7 月 4 日
0.1.0 2021 年 7 月 3 日

#512内存管理

每月 40 次下载

MIT OR Unlicense

35KB
616

transvec

transvec 是一个用于不复制转换 Vec 的 crate。

安装

将此添加到您的 Cargo.toml

[dependencies]
transvec = "0.3"

使用方法

use transvec::transmute_vec;
let input: Vec<u8> = vec![1, 2, 3, 4];
let output: Vec<u16, _> = transmute_vec(input).unwrap();

#![no_std]

此库支持 no_std,只需禁用默认功能,并可选地启用 allocator_api,这还需要原子指针。但它确实需要 alloc

Nightly

这是一个 nightly 版本,因为它被 allocator_api 块住了,这是此 crate 解决对齐问题的方法。

但是,您可以关闭默认功能,并可选地启用 std 以使其在稳定版上工作,唯一的选择是 transmute_vec_basictransmute_vec_basic_may_copy

贡献

欢迎 pull request。对于重大更改,请首先创建一个问题以讨论您希望更改的内容。

请确保适当地更新测试。

许可证

依赖项

~135KB