8 个版本
0.3.1 | 2022年1月4日 |
---|---|
0.3.0 | 2022年1月4日 |
0.2.0 | 2021年5月12日 |
0.1.4 | 2021年5月6日 |
#2 in #强制转换
每月106次下载
22KB
263 行
type-equalities
中心类型 TypeEq<_, _>
允许进行无开销、安全的价值强制转换,并且自身是零尺寸的。进一步地,对于任何类型,命名 TypeEq<T, U>
是合法的,但只有在等价性成立的情况下才存在占有者。对于特质级别的类型等价性,可以使用 T: IsEqual<U>
。
无开销的声明可以在提供的基准测试中看到
let eq = refl::<u32>().lift_through::<SliceF<BENCH_LEN>>();
b.iter(|| [0; BENCH_LEN]); // bench_no_coerce
b.iter(|| eq.coerce([0; BENCH_LEN])); // bench_coerce_array_refl
> running 2 tests
test benches::bench_no_coerce ... bench: 10,570 ns/iter (+/- 569)
test benches::bench_coerce_array_refl ... bench: 10,557 ns/iter (+/- 605)
此包是 无 std,并且有一个(默认:启用)的 alloc 功能,即强制转换 Box
。
许可
根据以下之一许可
- Apache 许可证,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确声明,否则您提交的任何有意包含在作品中的贡献都将按上述方式双许可,不附加任何额外的条款或条件。