1 个不稳定版本
使用旧的Rust 2015
0.0.1 | 2018年6月17日 |
---|
#6 在 #ct
19KB
254 行
CT-Utils
此crate包含在编译时解析的类型和行为。
入门
将此crate作为依赖项包含,请将以下内容插入您的 Cargo.toml
文件中。
[dependencies]
ct-utils = "1.10.0"
在您的 lib.rs
或 main.rs
中添加此crate的使用。常用类型通常在此crate的预定义中重新导出,这降低了您的实现的可读性。否则,所有类型都可以通过它们的完全限定路径访问。
#[macro_use] extern crate ct_utils;
// Optional
use ct_utils::prelude::*;
一切就绪!
用法
以下展示了包含的组合列表示例,即 CTCons
特性。
构建类型项的组合列表并计算特定类型的偏移。
#[macro_use] extern crate ct_utils;
use ct_utils::prelude::*;
use ct_utils::ct_cons::Cons;
type BigList = Cons<Cons<Cons<Cons<Cons<CTConsTerm, i32>, u32>, f32>, i64>, usize>;
fn main() {
let list_size = BigList::size(); // 1-indexed
let list_offset = BigList::offset_of::<u64>(); // 0-indexed
assert!(list_size > list_offset);
assert_eq!(list_size, 5);
assert_eq!(list_offset, 4);
}
依赖项
~155KB