#[macro_export]
#[doc(hidden)]
macro_rules! __resource_name {
( $name:literal ) => {{
const _: () = {
let s: &str = $name;
let bytes = s.as_bytes();
let mut i = 0;
while i < bytes.len() {
let b = bytes[i];
assert!(
b.is_ascii_alphanumeric() || b == b'_' || b == b'.',
"resource_name! contains invalid character (only alphanumeric, '_', '.' allowed)"
);
i += 1;
}
};
$crate::models::ResourceName::from_naive_str_split($name)
}};
}
#[doc(inline)]
pub use __resource_name as resource_name;
#[cfg(test)]
mod test {
use crate::resource_name;
use olai_store::ResourceName;
#[test]
fn test_column_name_macros() {
assert_eq!(resource_name!("a"), ResourceName::new(["a"]));
assert_eq!(resource_name!("a.b"), ResourceName::new(["a", "b"]));
assert_eq!(resource_name!("a.b.c"), ResourceName::new(["a", "b", "c"]));
}
}