网站首页 > 博客文章 正文
上次我们说的宏
是可以和使用宏的代码在一起
甚至在同一个包里
我们还可以定义编译时运行的过程宏
过程宏必须定义在
proc-macro类型的crate里
在cargo文件里有如下配置即可
[lib]
proc-macro = true
具体用法一
用函数式宏指令proc_macro
来装饰一个公开方法
接收一个tokenstream的参数
返回一个tokenstream
函数体里定义要编译时内联的代码
作为返回结果
应用这个宏的时候
先use并调用这个宏
然后就可以调用宏里定义的逻辑了
类似声明式的宏的用法
它们区别在定义的方式不同
声明式的宏用match处理逻辑
用法二
用proc_macro_derive指令
附带一个要被派生的类型名
和一个可选的属性
来装饰一个公开函数
就完成了一个可派生的宏定义
应用这个宏的时候
先use被派生的类型名
再拿它去装饰一个特性
可选属性可用来装饰字段
然后就可以调用宏里定义的逻辑了
用法三
用proc_macro_attrbute
来装饰参数为tokenstream类型的
属性和被装饰对象的公开函数
应用的时候
在被应用的方法等对象上用这个方法名作为装饰指令使用
以后的学习中将涉及到具体用法
欢迎交流
猜你喜欢
- 2024-09-11 Rust 写操作系统之Hello world (三)
- 2024-09-11 Rust: 如何用Panic打造健壮应用(rust zig)
- 2024-09-11 在 Linux 新版内核中的 Rust 初探,原来是这样的
- 2024-09-11 Rust 向量(Vec)(rust 向量化)
- 2024-09-11 Rust 入坑指南:鳞次栉比 | CSDN 博文精选
- 2024-09-11 学习Rust编程——使用macro_rules!创建宏
- 2024-09-11 利用 Rust 过程宏实现的 derive-with 库
- 2024-09-11 Rust 基础入门-错误处理和宏-错误处理
- 2024-09-11 Rust 基础入门-错误处理和宏-属性式宏&函数式宏
- 2024-09-11 Rust中巧用matches!宏(rust腐蚀免费版)
你 发表评论:
欢迎- 最近发表
-
- 解决Win10打开软件提示“服务器没有及时响应或控制请求”
- 用友UAP解开非结构化大数据处理与分析的密码
- Windows 25H2 修复底层崩溃(windows修复环境)
- 开源技巧:使用Docker实现交互式任务
- Win11 任意版本 直接安装 Android 应用 教程完整版
- Windows Terminal已成为Windows 11操作系统的默认终端
- 那些好莱坞电影中炫酷的特效 原来是这么拍的
- Windows 10 Build 21327.1010发布:测试服务管道更新
- Made in China: The story behind the label
- PowerShell登录远程Linux系统(powershell开启远程桌面)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)