#编译时 #行为 #解析 #组合 #ct #偏移 #类型

nightly ct-utils

CT-utils包含在编译时解析的类型和行为

1 个不稳定版本

使用旧的Rust 2015

0.0.1 2018年6月17日

#6#ct

MIT 许可证

19KB
254

CT-Utils

此crate包含在编译时解析的类型和行为。

入门

将此crate作为依赖项包含,请将以下内容插入您的 Cargo.toml 文件中。

[dependencies]
ct-utils = "1.10.0"

在您的 lib.rsmain.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