问题标签 [rust-macros]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 带有问号的 std 文档示例无法编译
我在宏观方面遇到了极大的困难,try!
以至于?
我开始质疑现实的结构。我直接从 rust-docs中提取了下面的示例,它仍然在我的脸上爆炸。
代码:
错误:
rustup
根据(1.19.0) ,我正在使用 Rust 的最新稳定版本
rust - Rust 中的宏调用意外结束
我在 Rust 中有以下代码
在编译时,我收到以下错误
我不确定问题是什么。
编辑:我使用的是最新的 Rust 版本(稳定版 1.20)
compilation - 是否有宏或类似的解决方法在编译时包含源文件夹(src)路径?
是否有 Rust 宏或类似的解决方法可以cargo new
在编译时或特别是在执行时将通过在我的源文件中创建的“src”文件夹的路径作为字符串文字包含在内cargo build
?
我已经成功地完成了类似的操作,include_str!
用于包含文件内容,但我需要知道是否可以在代码中直接包含 src 路径。
rust - 如何将以下 from_str 宏更改为 from_json?
我有以下宏。请注意,这StringContent
是一个枚举项。
这使我可以编写类似的代码
现在我想要另一个宏from_json!
,它可以让我摆脱类似的r#""#
东西
我尝试了以下似乎不起作用
我怎么from_json
去上班?
macros - 如何测试宏中的标识符是否以下划线开头?
我需要检查标识符是否以下划线开头。这不起作用:
错误在哪里?
rust - 将参数传递给函数 n 次
我正在尝试使用 Rust 中的不同模式,并想尝试动态调用具有相似签名但参数数量不同的几个函数之一。例如:
我希望能够将所有参数的值传递给这些方法,以便它们可以互换调用 - 所以如果输入是5
我希望能够调用foo(5)
, bar(5, 5)
, orbaz(5, 5, 5)
等等。
似乎这最好通过宏或其他语法扩展来完成,但我不确定表达它的最佳方式。到目前为止,我所拥有的只是对案例的强力枚举,但这似乎既乏味(为每个案例重新编写相同的表达式)又脆弱(它不支持 n+1 个参数):
我遇到了这种看起来很相似的模式,但它仍然需要分别列举每个案例。
有没有更好的方法可以更灵活地将 a 包装fn(X, ...)
为一个恰好采用 one 的函数X
?
macros - 如何实现 Lispian cond 宏?
预期用途:
应扩展为:
请注意,它不会产生包罗万象的else { ... }
后缀。
我的尝试:
但是,编译器抱怨该else
关键字。
macros - 如何在 rust 中向宏文档添加示例?
在编写宏时,我想正确地记录它,这包括示例。
但是当我尝试以与常规函数相同的方式执行此操作时,我得到:
我cargo test
每晚运行以测试以下内容:
我对 doctests 的理解是每个都包含在自己的main
函数中。像这样:
如果这是正确的,它将解释错误。
有什么方法可以将示例实际添加到宏中?
rust - Rust 宏中相同变量的不同分隔符
我想匹配如下模式:
将为所有数字生成相同的代码,但我希望在有分号时运行其他代码。这种模式可能吗?
我试过了:
但我似乎无法在右侧完成这项工作。
rust - 我可以将变量名称附加到宏中的 setter 和 getter 函数名称吗?
我需要为我的 FFI 代码生成 setter 和 getter。
有没有办法可以将变量名称附加到宏中的 setter 和 getter 函数名称?我试过stringify!($var + set)
了,但它产生了一堆错误。
将它隐藏在每个变量的模块中是唯一的方法吗?
对于myvar1
setter 和 getter 将分别是myvar1_set
和myvar1_get
。