2 个版本

0.1.1 2022年2月14日
0.1.0 2022年2月9日

#252无标准库


用于 prim_int_kind

MIT/Apache

11KB
68

原始整数标记特性

此crate提供了标记特性用于原始整数

数值类型

整数类型

无符号整数类型包括

类型 最小值 最大值
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 位宽。

示例

Cargo.toml

## ...

[dependencies]
just_prim_int = { version = "0.1.0" }

## ...

[features]

## https://doc.rust-lang.net.cn/beta/unstable-book/language-features/marker-trait-attr.html
marker_trait_attr = ["just_prim_int/marker_trait_attr"]

src/main.rs

// Uncomment if you want to conditionally use the feature. Remove otherwise.
// #![cfg_attr(feature = "marker_trait_attr", feature(marker_trait_attr))]

use just_prim_int::PrimInt;

trait MyExtensionTraitForPrimInts: PrimInt {
    // ...
}

fn main() {}

构建、运行和测试

  • cargo build <其他选项> --features marker_trait_attr 如果你想要该功能,否则使用 cargo build <其他选项>
  • cargo run<其他选项> --features marker_trait_attr 如果你想使用这个特性,否则请使用 cargo build <其他选项>
  • cargo test <其他选项> --features marker_trait_attr 如果你想使用这个特性,否则请使用 cargo test <其他选项>

特性

使用 marker_trait_attr Nightly 特性,每个提供的特质都有一个 #[marker] 属性,这允许通过两个“重叠”的泛型 impl 块更优地实现 PrimInt,一个用于 T: PrimSignedInt,另一个用于 T: PrimUnsignedInt。如果没有 #[marker] 属性,它们将发生冲突。

作者的其他类似软件包

  • epui - 等大小的(原始)无符号整数用于原始整数:u8 对应 u8,u16 对应 i16 等
  • epsi - 等大小的(原始)有符号整数用于原始整数
  • primitive_promotion - 原始数字类型的提升:u16 对应 u8,i32 对应 i16,f64 对应 f32 等
  • is_signed_trait - IS_SIGNED 关联常量的特质
  • max_len_base_10_as_usize - 提供原始整数最大长度常量作为 usize 的特质
  • min_max_traits - MINMAX 关联常量的特质
  • 以及其他可以在 crates.io 上找到的特质

替代方案

许可证

根据您的选择,许可方式为 Apache License, Version 2.0MIT 许可证
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交给此软件包的贡献,将如上所述双重许可,不附加任何额外的条款或条件。

无运行时依赖

特性