5个版本
0.2.3 | 2020年8月16日 |
---|---|
0.2.1 | 2020年8月15日 |
0.1.8 | 2020年8月14日 |
在数学类别中排名607。
每月下载37次
77KB
1.5K SLoC
Nibbler
处理半字节的小型库。
Crates.io上还有几个处理半字节的库。
效率
本库中的任何内容都不应被视为“高效”或“快速”。然而,它旨在简单。
依赖关系
- 无,None
所需的是标准库中的std::fmt::Display
(标准库),用于显示对象。
快速示例使用
use nibbler::traits::Nib;
use nibbler::nibble::Nibble;
let val: u8 = 10;
let mut nib: Nibble = Nibble::from(val);
assert_eq!(10, nib.into());
use nibbler::nibbles::Nibbles;
let val: u16 = 0xaa; // 10101010
let nibs: Nibbles = val.into();
assert_eq!(2, nibs.len());
assert!(nibs.fits_u8());
assert_eq!(170, nibs.into());
assert_eq!(10, nibs.get(0).into());
assert_eq!(10, nibs.get(1).into());
let val: u16 = 0xba; // 10111010
let nibs: Nibbles = val.into();
assert_eq!(2, nibs.len());
assert!(nibs.fits_u8());
assert_eq!(186, nibs.into());
assert_eq!(11, nibs.get(0).into());
assert_eq!(10, nibs.get(1).into());
let val: u16 = 0xf00;
let nibs: Nibbles = val.into();
assert_eq!(3, nibs.len());
assert!(!nibs.fits_u8());
assert!(nibs.fits_u16());
assert_eq!(3840, nibs.into());
assert_eq!(15, nibs.get(0).into());
assert_eq!(0, nibs.get(1).into());
assert_eq!(0, nibs.get(2).into());
半字节不考虑符号。半字节只是4位。在所有转换中,有符号整数都被视为无符号整数。您可以将有符号整数转换回可用的类型。
更多信息,请参阅文档... 或在Crates.io ... 或仓库。
未来
在所谓的"待办事项"列表中,要添加右移、左移、加法、减法和乘法。
许可证
GPLv3