#原始整数 #整数 #原始 #种类 #变体 #枚举 #int

prim_int_kind

枚举,其变体代表原始整数的种类

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日

#2744Rust模式

MIT/Apache

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可以用来计算对象或数组指针之间的差异,并可以访问对象内的每个字节以及末尾之后的字节。

usizeisize至少是16位宽。

注意:许多Rust代码可能假设指针、usizeisize是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.0MIT许可证
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在本软件包中的任何贡献,均应作为上述双重许可,不附加任何额外条款或条件。

依赖项

~0.8–1.2MB
~25K SLoC