【unitrix数间混合计算】2.1 数间混合计算模块(src/number/mod.rs)

发布于:2025-08-09 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、源码

这段代码是一个Rust模块的声明和导出配置,主要用于实现"类型级数与基本类型混合计算"的功能。

//! 类型级数与基本类型混合计算

// 模块声明
// --------------------------------
mod types;                // 结构体定义
mod normalize;            // 二进制数字标准化
mod marker_traits;        // 标记 trait
mod conversion;           // 类型转换
mod bitwise;              // 位运算符
mod arithmetic;           // 算术运算符
mod comparison;           // 比较运算符
mod assignment;           // 复合赋值运算符

// 公开导出
// --------------------------------
pub use types::*;
pub(crate) use normalize::*;
pub use marker_traits::*;
pub use conversion::*;
pub use bitwise::*;
pub use arithmetic::*;
// 注意: comparison 模块未导出
pub use assignment::*;

二、模块声明部分:


mod types;                // 结构体定义
mod normalize;            // 二进制数字标准化
mod marker_traits;        // 标记 trait
mod conversion;           // 类型转换
mod bitwise;              // 位运算符
mod arithmetic;           // 算术运算符
mod comparison;           // 比较运算符
mod assignment;           // 复合赋值运算符

这部分声明了8个子模块,每个模块负责不同的功能:

  • types: 定义核心数据结构

  • normalize: 处理二进制数字的标准化

  • marker_traits: 定义标记trait(用于类型系统)

  • conversion: 类型转换相关功能

  • bitwise: 位运算操作

  • arithmetic: 算术运算

  • comparison: 比较运算

  • assignment: 复合赋值运算

三、公开导出部分:


    pub use types::*;
    pub(crate) use normalize::*;
    pub use marker_traits::*;
    pub use conversion::*;
    pub use bitwise::*;
    pub use arithmetic::*;
    // 注意: comparison 模块未导出
    pub use assignment::*;
这部分控制哪些模块的内容对外暴露:
  • types, marker_traits, conversion, bitwise, arithmetic, assignment 的内容被公开导出(pub use)

  • normalize 的内容只在当前crate内可见(pub(crate) use)

  • comparison 模块没有被导出(注释特别指出了这一点)

四、特别说明:

  • 代码实现了类型级(type-level)数字与基本类型的混合计算

  • 通过模块化设计将不同功能分离

  • 注释中特别指出comparison模块没有被导出,意味着比较操作可能是内部实现细节

这种结构常见于实现复杂类型系统的Rust库,特别是涉及编译期计算的库。通过模块化设计和精细的可见性控制,代码保持了良好的组织结构和封装性。


网站公告

今日签到

点亮在社区的每一天
去签到