3个版本
0.1.2 | 2023年6月6日 |
---|---|
0.1.1 | 2023年6月6日 |
0.1.0 | 2023年6月5日 |
#1146 in 数据结构
66KB
1.5K SLoC
装箱
一个易于使用、跨平台的库,用于指针和NaN装箱数据 - 将其他数据值存储在浮点数或指针未使用的部分。
示例
有关更详细的示例,请参阅 nan
模块文档。
use boxing::nan::NanBox;
assert_eq!(core::mem::size_of::<NanBox<()>>(), core::mem::size_of::<f64>());
let a = NanBox::<()>::from_float(2.0);
let b = NanBox::<()>::from_inline(-1i32);
assert_eq!(a.clone().try_into_float(), Ok(2.0));
assert_eq!(b.clone().try_into_inline::<i32>(), Ok(-1i32));
assert!((a.into_float_unchecked() + b.into_float_unchecked()).is_nan());
lib.rs
:
一个易于使用、跨平台的库,用于指针和NaN装箱数据 - 将其他数据值存储在浮点数或指针未使用的部分。
示例
有关更详细的示例,请参阅 [nan
] 模块文档。
use boxing::nan::NanBox;
assert_eq!(core::mem::size_of::<NanBox<()>>(), core::mem::size_of::<f64>());
let a = NanBox::<()>::from_float(2.0);
let b = NanBox::<()>::from_inline(-1i32);
assert_eq!(a.clone().try_into_float(), Ok(2.0));
assert_eq!(b.clone().try_into_inline::<i32>(), Ok(-1i32));
assert!((a.into_float_unchecked() + b.into_float_unchecked()).is_nan());
依赖项
~58KB