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

不要网站域名建站快车代理平台系统

不要网站域名,建站快车代理平台系统,wordpress中文函数手册,黄骅网站建设价格macros.rs代码定义了一个Rust宏mint_vec,它用于在启用mint特性时,为特定的向量类型实现与mint库中对应类型的相互转换。mint库是一个提供基本数学类型(如点、向量、矩阵等)的Rust库,旨在与多个图形和数学库兼容。这个宏…

macros.rs代码定义了一个Rust宏mint_vec,它用于在启用mint特性时,为特定的向量类型实现与mint库中对应类型的相互转换。mint库是一个提供基本数学类型(如点、向量、矩阵等)的Rust库,旨在与多个图形和数学库兼容。这个宏通过减少重复代码,使得为自定义向量类型添加与mint库中类型的转换变得更加方便。

一、macros.rs源码

macro_rules! mint_vec {($name:ident [ $($field:ident),* ] = $std_name:ident) => {#[cfg(feature = "mint")]impl<T, U> From<mint::$std_name<T>> for $name<T, U> {fn from(v: mint::$std_name<T>) -> Self {$name {$( $field: v.$field, )*_unit: PhantomData,}}}#[cfg(feature = "mint")]impl<T, U> From<$name<T, U>> for mint::$std_name<T> {fn from(v: $name<T, U>) -> Self {mint::$std_name {$( $field: v.$field, )*}}}}
}

二、宏定义

1、宏定义签名:

macro_rules! mint_vec { … }定义了一个名为mint_vec的宏。

2、宏输入参数:

($name:ident [ ( ( (field:ident),* ] = $std_name:ident)是宏的参数列表。这里:

  • name:ident是一个标识符(ident),表示要生成实现的自定义向量类型的名称。
  • [ ( ( (field:ident),* ] ,是一个可变长度的标识符列表,表示向量中的字段名称。这里的*表示这是一个重复的模式,可以匹配零个或多个字段。
  • std_name:ident是另一个标识符,表示mint库中对应的标准向量类型的名称。

3、宏体

宏的主体包含了两部分impl块,分别用于实现From转换。

  • 第一部分实现了从mint库中的向量类型(mint::std_name)到自定义向量类型(name<T, U>)的转换。
  • 第二部分实现了反向的转换,即从自定义向量类型(name<T, U>)到mint库中的向量类型(mint::std_name)的转换。
  • 在这两个实现中,field: v.是宏的重复语法,用于将自定义向量类型的每个字段映射到mint库向量类型的对应字段上。这使得转换能够直接复制字段值,而不需要手动编写每个字段的转换代码。

三、条件编译

  • #[cfg(feature = “mint”)]:这个属性指示编译器仅当启用了mint特性时才编译接下来的代码块。这允许用户通过Cargo的特性标志来控制是否包含这些实现。

四、PhantomData: - _unit: PhantomData:

这是一个类型参数U的PhantomData实例,用于在自定义向量类型中携带一个额外的类型参数而不占用实际空间。这通常用于标记或限制泛型类型的用途,而在这个宏中,它可能用于保持与mint库中类型一致的泛型签名。

五、 总结

这个宏允许开发者通过简单地指定自定义向量类型的名称、字段和对应的mint库类型,来自动生成与mint库中向量类型的相互转换实现,从而减少了重复代码并提高了代码的可维护性。


http://www.yayakq.cn/news/550436/

相关文章:

  • 南京网站建设南京扬中新闻头条新闻
  • 网站架构模式用哪种wordpress 主题开心版
  • 塑胶托盘东莞网站建设公司网站需求文档
  • 青岛开办公司要做网站吗如何配置php网站
  • 网站seo 优帮云wordpress dux 下载
  • 自己做个网站多少钱wordpress导航网址
  • 神网站建设品牌推广策划书范文案例
  • 东莞网站托管公司网站空间一年多少钱
  • 东丽手机网站建设软件商店正版下载
  • 餐饮型网站开发网站建设规划模板
  • 网站建设Z亿玛酷1流量订制PS做网站页面尺寸
  • 顺德营销型网站一站式服务哪家好郑州国家网络安全科技馆
  • 网站数据分析案例视觉冲击力的网站设计
  • 如何做购物券网站网站建设 psd
  • 做一个营销型网站如何让各大搜索引擎识别新建网站
  • 中扶建设网站张槎九江网站建设
  • 临沂营销网站建设网站制作吧
  • 做网站主要显哪些内容职场seo是什么意思
  • 响应式网站案例源码北京海淀建设中路哪打疫苗
  • 安阳网站建设哪家公司好域名过期的Wordpress
  • 企业网站建设排名资讯电商网站设计
  • 财政局网站建设自查报告查询企业联系方式的软件
  • 绵阳网络公司网站建设建设银行官网网站首页
  • 用腾讯云做淘宝客网站视频下载网页设计与制作教程第三版答案
  • wordpress新建页面不能保存路径重庆seo网络推广
  • 做网站应规避的风险成都工装设计公司
  • sql server网站建设天津设计院排名
  • 手机建网站推广郑州关键词排名顾问
  • 最专业网站建设哪家好阿里巴巴国际站官网
  • 新开传奇网站180火龙谷歌官方网站首页