当前位置: 首页 > news >正文

做电路方案设计的网站网站名查询网址

做电路方案设计的网站,网站名查询网址,开发公司总经理职责,wordpress主题支持分页一、源码 这段代码是用Rust实现的类型级数字系统,使用类型来表示整数并定义它们的属性。这是一种在编译时进行数学运算的技术,常用于需要编译时验证的场景。 use crate::sealed::Sealed; use crate::number::{Z0, P1, N1, B0, B1};// Marker Traits D…

一、源码

这段代码是用Rust实现的类型级数字系统,使用类型来表示整数并定义它们的属性。这是一种在编译时进行数学运算的技术,常用于需要编译时验证的场景。

use crate::sealed::Sealed;
use crate::number::{Z0, P1, N1, B0, B1};// ========== Marker Traits Definition ==========
// ========== 标记特质定义 ==========/// Integer type marker trait
/// 整数类型标记特质
pub trait Integer: Default+ Sealed + Copy + 'static {/// Convert to i32 (will be deprecated after Var implementation)/// 转换为i32 (Var方法完善后将取消)fn to_i32() -> i32;
}/// Non-zero integer marker
/// 非零整数标记
pub trait NonZero: Integer {}// Integer not equal to 1
/// 不等于1的整数标记
pub trait NonOne: Integer {}/// Integer not equal to -1
/// 不等于-1的整数标记
pub trait NonNegOne: Integer {}// Unsigned integer marker
/// 无符号整数标记
pub trait Unsigned: Integer {}// ========== NonZero Implementations ==========
// ========== NonZero 实现 ==========
impl NonZero for P1 {}
impl NonZero for N1 {}
impl<H: NonZero> NonZero for B0<H> {}
impl<H: NonZero> NonZero for B1<H> {}// ========== Integer Implementations ==========
// ========== Integer 实现 ==========// Z0 represents 0
// Z0 表示 0
impl Integer for Z0 {#[inline(always)]fn to_i32() -> i32 {0}
}// P1 represents +1
// P1 表示 +1
impl Integer for P1 {#[inline(always)]fn to_i32() -> i32 {1}
}// N1 represents -1
// N1 表示 -1
impl Integer for N1 {#[inline(always)]fn to_i32() -> i32 {-1}
}// B0<H> represents H * 2
// B0<H> 表示 H * 2
impl<H: NonZero> Integer for B0<H> {#[inline(always)]fn to_i32() -> i32 {H::to_i32() * 2}
}// B1<H> represents H * 2 + 1
// B1<H> 表示 H * 2 + 1
impl<H: NonZero> Integer for B1<H> {#[inline(always)]fn to_i32() -> i32 {H::to_i32() * 2 + 1}
}// ========== NonOne Implementations ==========
// ========== NonOne 实现 ==========
impl NonOne for Z0 {}
impl NonOne for N1 {}
impl<H: NonZero> NonOne for B0<H> {}
impl<H: NonZero> NonOne for B1<H> {}// ========== NonNegOne Implementations ==========
// ========== NonNegOne 实现 ==========
impl NonNegOne for Z0 {}
impl NonNegOne for P1 {}
impl<H: NonZero> NonNegOne for B0<H> {}
impl<H: NonZero> NonNegOne for B1<H> {}// ========== Unsigned Implementations ==========
// ========== Unsigned 实现 ==========
impl Unsigned for Z0 {}
impl Unsigned for P1 {}
impl<H: NonZero + NonNegOne> Unsigned for B0<H> {}
impl<H: NonZero + NonNegOne> Unsigned for B1<H> {}

二、代码分析

  1. 基本结构
use crate::sealed::Sealed;
use crate::number::{Z0, P1, N1, B0, B1};
  • 引入了密封模式(Sealed)和一些数字类型(Z0, P1, N1, B0, B1)
  1. 标记特质(Trait)定义
    定义了一系列标记特质来描述数字类型的属性:
  • Integer: 基础整数特质,要求实现Default、Sealed、Copy和’static,并提供一个to_i32()方法

  • NonZero: 标记非零整数

  • NonOne: 标记不等于1的整数

  • NonNegOne: 标记不等于-1的整数

  • Unsigned: 标记无符号整数(非负整数)

  1. 数字类型表示
    系统使用类型来表示数字:
  • Z0: 表示数字0

  • P1: 表示+1

  • N1: 表示-1

  • B0: 表示H*2 (二进制表示,在末尾加0)

  • B1: 表示H*2+1 (二进制表示,在末尾加1)

  1. 实现细节
  • NonZero实现: P1、N1和所有以B0、B1结尾的非零数字都是NonZero

  • Integer实现:

  • Z0转换为0

  • P1转换为1

  • N1转换为-1

  • B0转换为H::to_i32() * 2

  • B1转换为H::to_i32() * 2 + 1

  • NonOne实现: 所有不等于1的类型

  • NonNegOne实现: 所有不等于-1的类型

  • Unsigned实现: 所有非负整数(0、1和所有以B0、B1结尾的非负非-1数字)

  1. 设计模式
  • 密封模式(Sealed): 防止外部类型实现这些特质

  • 类型级编程: 使用类型而不是值来表示数字,在编译时进行计算

  • 标记特质: 用于分类和约束类型

  1. 用途
    这种设计通常用于:
  • 编译时维度检查

  • 类型安全的状态机

  • 编译时计算的数学运算

  • 需要强类型保证的领域

例如,可以创建类型安全的数组,其长度在类型中编码,并在编译时检查操作是否合法。

这种技术虽然增加了编译时复杂度,但可以提供更强的类型安全和运行时零成本抽象。

http://www.hkea.cn/news/728683/

相关文章:

  • 男的女的做那个视频网站百度收录需要多久
  • 大通县wap网站建设公司网站免费制作
  • 哪个网站教做公众号甘肃百度推广电话
  • 网站怎么让百度收录广告网络推广
  • 小型网站设计及建设论文定制网站制作公司
  • 视频网站建设费用排名优化网站seo排名
  • 怎么自己做网站服务器linux百度账号查询
  • 梧州网站推广方案百度热搜 百度指数
  • 网站不兼容ie6自助建站模板
  • 甘肃网站建设公司百中搜优化软件
  • 国内外贸网站建设公司seo教程 百度网盘
  • 一物一码二维码生成系统最好用的系统优化软件
  • 如何在大网站做外链镇江网站建站
  • 杭州网站建设公司导航短视频营销案例
  • 昆明做网站建设有哪些长尾关键词排名工具
  • 一女被多男做的视频网站网站seo系统
  • 网站建设 青海网站建设找哪家好
  • win7 网站配置优化方案官网电子版
  • 广州seo优化公司排名浙江seo博客
  • 全网推广的方式有哪些抖音seo推荐算法
  • 网站开发开源架构抖音营销软件
  • 自己做的网站能放到网上么青岛seo经理
  • 营业推广策划方案邵阳网站seo
  • 手机网站横向切换kol合作推广
  • 专门做超市海报的网站宁波seo咨询
  • 仿网站上的焦点图在线看seo网站
  • 做网站的业务员艾滋病阻断药有哪些
  • web集团网站建设广告投放平台有哪些
  • 大连做网站建设广告资源对接平台
  • 做网站怎么写工作日志泉州网站seo公司