网站首页 > 博客文章 正文
上次我们说的宏
是可以和使用宏的代码在一起
甚至在同一个包里
我们还可以定义编译时运行的过程宏
过程宏必须定义在
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腐蚀免费版)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- 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)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)