3
Rustはまだ安定してconcat_idents
をサポートしていないので、複数の同様の識別子を引数として渡す必要があるかもしれません。マクロに渡される識別子に制約を適用できますか?
誤って間違った位置引数を渡すことができます。
「のテキストが含まれている」などの識別子がいくつかの基本的なルールに一致チェックする方法はありますが、ノー
struct_bitflag_flag_fn_impl!(
MyStructType, my_struct_flag::SELECT,
select_test, select_set, select_clear, select_set_bool, select_toggle);
struct_bitflag_flag_fn_impl!(
MyStructType, my_struct_flag::HIDDEN,
hidden_test, hidden_set, hidden_clear, hidden_toggle, hidden_set_bool);
// Humans make mistakes, how to prevent? -> ^^^^^^ ^^^^^^^^
// (arguments may be transposed by accident)