#integer #compiler #interpreter #semantics #imp #modeling #thinly-wrapped

已删除 imp_int

一组轻封装的整数类型,用于建模 IMP 整数语义

3 个不稳定版本

0.3.1 2024年4月21日
0.3.0 2024年4月20日
0.2.0 2024年4月20日

#5 in #imp

Download history 16/week @ 2024-04-27 1/week @ 2024-05-04

每月 91 次下载
用于 3 crates

MIT 许可证

15KB
289

imp_int

整数新类型不过是一堆令人沮丧的宏吗?

此crate提供了以下轻封装类型

  • u8 =>Imp8;
  • u16 =>Imp16;
  • u32 =>Imp32;
  • u64 =>Imp64;
  • u128 =>Imp128;
  • usize =>ImpSize.

启用 bigint 功能后,它还提供了一个 ImpBigInt 类型,作为 num_bigint::BigUint 类型的包装,以提供具有 IMP 整数语义的任意精度整数。

安装

# ordinary usage
cargo add imp_int

# usage with the bigint feature enabled
cargo add imp_int --features bigint

lib.rs:

轻封装的整数类型,用于建模 IMP 整数语义。

在一般意义上,IMP 整数只是一个无符号整数,其加法和乘法按常规定义,而减法定义为饱和到 0。然而,由于 IMP 没有定义整数溢出;它强制实现者决定它们希望有多正确。

因此,此crate中的类型在调试和发布构建中实现了 checked 加法和乘法(不包括 ImpBigInt,它通过无界性避免了这些检查)。

依赖关系

~230KB