#traits #zst #sized #no-std #no-alloc #zero-sized-types

nightly no-std size-trait

限制类型参数大小的特质

1 个不稳定版本

0.1.0 2023 年 7 月 21 日

#2886Rust 模式

自定义许可

16KB
117

size-trait

此crate提供了限制类型参数大小的特质。

示例

零大小类型

#![feature(generic_const_exprs)]

use size_trait::ZeroSize;

// This struct can only contain `T` when `T` has a size of 0.
struct Zst<T: ZeroSize<true>>(T);

let _ = Zst([0u8; 0]);
let _ = Zst(());

固定大小类型

#![feature(generic_const_exprs)]

use size_trait::Size;

// This struct can only contain `T` when `T` has a size of 4 bytes.
struct Fixed4Bytes<T: Size<4>>(T);

let _ = Fixed4Bytes([0u8; 4]);
let _ = Fixed4Bytes(0u32);

警告

此crate依赖于不稳定特性 generic_const_exprs。此特性仅在nightly Rust中可用。它也不保证将来会稳定。跟踪问题 #76560

为了使此crate正常运行,您必须在您的crate中启用 generic_const_exprs 特性

#![feature(generic_const_exprs)]

作者

无运行时依赖