4个版本
0.1.3 | 2022年2月10日 |
---|---|
0.1.2 | 2022年2月10日 |
0.1.1 | 2022年2月9日 |
0.1.0 | 2022年2月4日 |
#2744 在 Rust模式
13KB
204 行
原始整数种类枚举
此软件包提供PrimIntKind
枚举,其变体代表原始整数的种类。
根据Rust的参考,Rust中的原始数值整数类型如下
数值类型
整数类型
无符号整数类型包括
类型 | 最小值 | 最大值 |
---|---|---|
u8 |
0 | 28-1 |
u16 |
0 | 216-1 |
u32 |
0 | 232-1 |
u64 |
0 | 264-1 |
u128 |
0 | 2128-1 |
有符号二进制补码整数类型包括
类型 | 最小值 | 最大值 |
---|---|---|
i8 |
-(27) | 27-1 |
i16 |
-(215) | 215-1 |
i32 |
-(231) | 231-1 |
i64 |
-(263) | 263-1 |
i128 |
-(2127) | 2127-1 |
机器相关的整数类型
usize
类型是一个与平台指针类型位数相同的无符号整数类型。它可以表示进程中的每个内存地址。
isize
类型是一个与平台指针类型位数相同的有符号整数类型。对象和数组大小的理论上限是最大的isize
值。这确保了isize
可以用来计算对象或数组指针之间的差异,并可以访问对象内的每个字节以及末尾之后的字节。
usize
和isize
至少是16位宽。
注意:许多Rust代码可能假设指针、
usize
和isize
是32位或64位。因此,16位指针支持有限,可能需要库的明确关心和确认才能支持。
示例
稳定的Rust
use prim_int_kind::PrimIntKind;
let res_kind = "u16".parse();
assert_eq!(res_kind, Ok(PrimIntKind::U16));
使用const_trait_impl
夜间功能
Cargo.toml
# Read more about features here:
# https://doc.rust-lang.net.cn/cargo/reference/features.html
[features]
const_trait_impl = ["prim_int_kind/const_trait_impl"]
src/main.rs
#![cfg_attr(any(doc,test,doctest, feature = "const_trait_impl"), feature(const_trait_impl))]
// Run via `cargo run --features const_trait_impl`
use core::str::FromStr;
use prim_int_kind::{PrimIntKind, PrimIntKindParsingError};
fn main() {
#[cfg(any(doc,test,doctest, feature = "const_trait_impl"))]
const res_kind: Result<PrimIntKind, PrimIntKindParsingError> = PrimIntKind::from_str("u16");
#[cfg(not(any(doc,test,doctest, feature = "const_trait_impl")))]
let res_kind: Result<PrimIntKind, PrimIntKindParsingError> = PrimIntKind::from_str("u16");
assert_eq!(res_kind, Ok(PrimIntKind::U16));
}
许可证
根据您的选择,许可为Apache License,版本2.0或MIT许可证。除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在本软件包中的任何贡献,均应作为上述双重许可,不附加任何额外条款或条件。
依赖项
~0.8–1.2MB
~25K SLoC