#const #partial #const-generics #values #constant #unified #bool

无std 部分_常量

此库提供了一种统一处理常量和非常量值的方法

2个不稳定版本

0.2.1 2021年3月26日
0.2.0 2021年3月26日
0.1.0 2021年1月27日

#1469 in 数据结构

MIT 许可证

42KB
727

partial_const

此库提供了一种统一处理常量和非常量值的方法。此库既具有动态值的灵活性,又具有(部分)由编译器执行的参数检查。

示例

fn maybe_one<T: partial_const::MayBeConst<i32>>(i: T) -> bool
    where T: partial_const::Equals<partial_const::ConstI32<1>> {
//  where T: partial_const::Equals<partial_const::i32::Const<1>> { <- Alternative
    i.value() == 1i32
}

assert!(maybe_one(partial_const::ConstI32::<1>::new()));
assert!(maybe_one::<partial_const::ConstI32<1>>(partial_const::ConstI32::new()));
assert!(maybe_one::<i32>(1));
assert!(!maybe_one::<i32>(2));
// assert!(maybe_one(partial_const::ConstI32::<2>::new())); <- Compile Error

许可证: MIT


lib.rs:

此库提供了一种统一处理常量和非常量值的方法。此库既具有动态值的灵活性,又具有(部分)由编译器执行的参数检查。

示例

fn maybe_one<T: partial_const::MayBeConst<i32>>(i: T) -> bool
    where T: partial_const::Equals<partial_const::ConstI32<1>> {
//  where T: partial_const::Equals<partial_const::i32::Const<1>> { <- Alternative
    i.value() == 1i32
}

assert!(maybe_one(partial_const::ConstI32::<1>::new()));
assert!(maybe_one::<partial_const::ConstI32<1>>(partial_const::ConstI32::new()));
assert!(maybe_one::<i32>(1));
assert!(!maybe_one::<i32>(2));
// assert!(maybe_one(partial_const::ConstI32::<2>::new())); <- Compile Error

依赖项