関数を定義するマクロを使用する場合、関数にプレフィックスを追加することはできますか?
_macro_rules! my_test {
($id:ident, $arg:expr) => {
#[test]
fn $id() {
my_test_impl(stringify!($id), $arg);
}
}
}
_
たとえば、fn my_test_$id() {
数字で始まる識別子を使用してテストを定義していますが、共通のプレフィックスを使用したいと思います。
[...]関数にプレフィックスを追加することは可能ですか?
いいえ、本当に、本当にありません。 スーパーほんの少しでも全くありません。
共通のプレフィックスを使用したいと思います。
代わりに、それらすべてをmod
に入れてください。
前述のように、これにはサブモジュールを使用する必要がありますが、マクロはサブモジュールを作成でき、サブモジュールはネストして名前を重複させることができ、サブモジュールはimpl
sを提供でき、tests
サブモジュールは魔法ではないことに注意してください。
私はかつて プルリクエスト を送信しました。これは、#[no_mangle]
エクスポートはそれを難しくします。