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

公司做网站 优帮云网站建设完成确认书

公司做网站 优帮云,网站建设完成确认书,今天的新闻内容摘抄30字,宿迁企业网站设计一、源码 这段代码实现了一个类型级别的整数系统,使用Rust的类型系统来表示和操作整数。这种技术在依赖类型编程和类型安全API设计中很有用。 use crate::sealed::Sealed; use core::marker::PhantomData;// 基础类型定义 #[derive(Eq, PartialEq, Clone, Copy,…

一、源码

这段代码实现了一个类型级别的整数系统,使用Rust的类型系统来表示和操作整数。这种技术在依赖类型编程和类型安全API设计中很有用。

use crate::sealed::Sealed;
use core::marker::PhantomData;// ========== 基础类型定义 ==========
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub struct B0<H>(pub PhantomData<H>);#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub struct B1<H>(pub PhantomData<H>);#[derive(Eq, PartialEq, Clone, Copy, Debug, Default)]
pub struct Z0;#[derive(Eq, PartialEq, Clone, Copy, Debug, Default)]
pub struct P1;//新增#[derive(Eq, PartialEq, Clone, Copy, Debug, Default)]
pub struct N1;impl<H> Default for B0<H>{fn default() -> Self{B0(PhantomData)}
}impl<H> Default for B1<H>{fn default() -> Self{B1(PhantomData)}
}// ========== Sealed 实现 ==========
impl<H> Sealed for B0<H> {}
impl<H> Sealed for B1<H> {}
impl Sealed for Z0 {}
impl Sealed for P1 {}
impl Sealed for N1 {}// ========== 标记特质定义 ==========
pub trait Integer: Default+Sealed + Copy + Default + 'static {fn to_i32(&self) -> i32;//新补充的方法
}
pub trait NonZero: Integer {}
pub trait NonOne: Integer {}
pub trait NonNegOne: Integer {}
pub trait Unsigned: Integer {}// ========== NonZero 实现 ==========
impl NonZero for P1 {}
impl NonZero for N1 {}
impl<H: NonZero> NonZero for B0<H> {}
impl<H: NonZero> NonZero for B1<H> {}// ========== Integer 实现 ==========
// Z0 表示 0
impl Integer for Z0 {#[inline(always)]fn to_i32(&self) -> i32 {0}
}// P1 表示 +1
impl Integer for P1 {#[inline(always)]fn to_i32(&self) -> i32 {1}
}// N1 表示 -1
impl Integer for N1 {#[inline(always)]fn to_i32(&self) -> i32 {-1}
}// B0<H> 表示 H * 2
impl<H: NonZero> Integer for B0<H> {#[inline(always)]fn to_i32(&self) -> i32 {H::default().to_i32() * 2}
}// B1<H> 表示 H * 2 + 1
impl<H: NonZero> Integer for B1<H> {#[inline(always)]fn to_i32(&self) -> i32 {H::default().to_i32() * 2 + 1}
}// ========== NonOne 实现 ==========
impl NonOne for Z0 {}
impl NonOne for N1 {}
impl<H: NonZero> NonOne for B0<H> {}
impl<H: NonZero> NonOne for B1<H> {}// ========== NonNegOne 实现 ==========
impl NonNegOne for Z0 {}
impl NonNegOne for P1 {}
impl<H: NonZero> NonNegOne for B0<H> {}
impl<H: NonZero> NonNegOne for B1<H> {}// ========== 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> {}// ========== 构造函数 ==========
impl<H> B0<H> {#[inline]pub fn new() -> Self {B0(PhantomData)}
}impl<H> B1<H> {#[inline]pub fn new() -> Self {B1(PhantomData)}
}impl P1 {#[inline]pub fn new() -> Self {P1}
}impl N1 {#[inline]pub fn new() -> Self {N1}
}impl Z0 {#[inline]pub fn new() -> Self {Z0}
}

二、基础类型定义

  1. 二进制位类型:
  • B0: 表示一个以0结尾的二进制数,H是更高位

  • B1: 表示一个以1结尾的二进制数,H是更高位

  1. 基本数值类型:
  • Z0: 表示数字0

  • P1: 表示数字+1 (新增)

  • N1: 表示数字-1

这些类型都使用了PhantomData来保持类型参数而不需要实际值,并实现了常见的trait如Eq, PartialEq, Clone, Copy, Debug等。

三、特质(Trait)系统

  1. Integer特质:
  • 所有整数类型的基特质

  • 要求实现Default, Sealed, Copy等

  • 新增了to_i32()方法将类型级整数转换为运行时值

  1. 子特质:
  • NonZero: 非零数

  • NonOne: 非一数

  • NonNegOne: 非负一数

  • Unsigned: 无符号数

四、数值表示规则

  • Z0 = 0

  • P1 = +1

  • N1 = -1

  • B0 = H * 2

  • B1 = H * 2 + 1

例如:

  • B1<B0> 表示 P1 * 2 = 2 (B0) 然后 2 * 2 + 1 = 5 (B1)

五、特质实现

代码为各种组合实现了适当的特质:

  • 非零数(NonZero)包括所有除了Z0的数

  • 非一数(NonOne)包括所有除了P1的数

  • 无符号数(Unsigned)包括所有非负数

六、构造函数

为每种类型提供了new()构造函数,方便创建实例。

七、使用场景

这种类型级整数系统可以用于:

  • 类型安全的状态机

  • 维度检查

  • 编译时计算

  • 确保某些值在编译时满足特定条件(如非零、正数等)

通过这种方式,可以在编译时捕获更多错误,而不需要运行时检查。

http://www.dtcms.com/a/408246.html

相关文章:

  • 钢城网站建设医院网站改版建设方案
  • Ubuntu系统本地搭建WordPress网站并一键发布内网站点至公网实战
  • 潍坊可以做网站的公司刚备案的域名如何做网站
  • 南宁做网站开发的公司使用网站效果图
  • 成都网站设计说明书jsp网站开发实例教学
  • 新建一个网站需要多少钱如何建设个人网站凡科怎么样
  • 【AI论文】在视觉运动策略中是否需要本体感觉状态?
  • 海南网站建设制作学做网站教程视频
  • 电子商务网站建设 试卷济南网络电视台
  • 临时车预进场数据处理功能说明
  • 北京做网站的人开发网站的技术风险
  • 英文网站建设580购物网站开发的描述
  • 基于Arduino的智慧农业系统设计
  • wordpress三栏主题西宁seo快速排名
  • Nano Banana如何重塑AGI发展路径
  • 通用人工智能(AGI)发展现状:从科幻到现实的跨越
  • 外资企业可以在中国境内做网站吗电子网站开发
  • 开一个素材设计网站怎么做黑色大气网站源码
  • Linux文件系统调用:文件调用函数与exec系统函数详解与应用
  • 娄底网站建设公司有哪些微信公众号涨粉 网站
  • 尼高网站设计公司网站不在首页显示出来吗
  • 制作和维系一个网站的费用公司想做网络推广贵不
  • 人力资源管理的思维方式学习笔记4
  • 婚嫁行业网站模板网页升级访问中每天正常更新中
  • 专业上海网站建设上外贸网站建设
  • 学校官方网站的建设目标是什么seo公司排名
  • 综合性门户网站是什么意思支部网站及活动室建设
  • 公司网站建设的好处建材在哪些网站做
  • 做销售网站湖北省电力建设三公司网站
  • 上海营销网站建站公司dw安装免费下载