6个版本
0.3.1 | 2023年4月12日 |
---|---|
0.3.0 | 2023年4月9日 |
0.2.3 | 2023年4月7日 |
0.1.0 | 2023年4月6日 |
#17 in #sized
每月23次下载
21KB
337 行
此库提供了SizedBiset<B>
,这是从C++的std::bitset<N>
借用的一个想法,以及一些相关的功能。
lib.rs
:
sized_bitset
此库提供了SizedBitset
(静态大小的bitset)及其功能。
SizedBitset 101
- 常量初始化
use sized_bitset::SizedBitset;
const BITSET: SizedBitset<4> = SizedBitset::from_const([true, true, false, false]);
- 来自原始数据类型
From<u{N}> SizedBitset<{M}>
仅在N <= M
时定义。
use sized_bitset::SizedBitset;
let bitset: SizedBitset<8> = 0b10101010.into();
- 尝试从切片中解析
如果切片长度与SizedBitset
大小不精确相同,则会触发panic。
use sized_bitset::SizedBitset;
let bitset: SizedBitset<4> = [true, true, true, true].as_slice().try_into().unwrap();
- 解析字符串
如果字符串长度大于SizedBitset
大小,则会触发panic。
use sized_bitset::SizedBitset;
let bitset: SizedBitset<4> = "1010".parse().unwrap();
转换为原始数据类型
允许使用sized_bitset::convert::*;
将[SizedBitset]转换为原始数据类型。
To{N} for SizedBitset<{M}>
仅在N >= M
时定义。
pub mod convert {
pub trait To8 {
fn to_u8(&self) -> u8;
}
pub trait To16 {
fn to_u16(&self) -> u16;
}
pub trait To32 {
fn to_u32(&self) -> u32;
}
pub trait To64 {
fn to_u64(&self) -> u64;
}
pub trait To128 {
fn to_u128(&self) -> u128;
}
}
依赖项
~1.3–2.5MB
~46K SLoC