macro_rules! assert_capability_catalog_unique {
($({
feature: $feature:literal,
field: $field:ident $(,)?
}),* $(,)?) => {
mod __capability_catalog_unique_fields {
$(
/// 生成期占位模块:重复 field 标识符时在此触发 E0428。
pub mod $field {}
)*
}
const fn __catalog_str_eq(a: &str, b: &str) -> bool {
if a.len() != b.len() {
return false;
}
let ab = a.as_bytes();
let bb = b.as_bytes();
let mut i = 0;
while i < ab.len() {
if ab[i] != bb[i] {
return false;
}
i += 1;
}
true
}
const _: () = {
$(
assert!(
__catalog_str_eq($feature, ::core::stringify!($field)),
"capability catalog: feature must equal field identifier text"
);
)*
};
};
}