Add a type-level encoding of qualified paths
diff --git a/macro/src/lib.rs b/macro/src/lib.rs
index b56f58e..bc8d19b 100644
--- a/macro/src/lib.rs
+++ b/macro/src/lib.rs
@@ -11,10 +11,11 @@
mod expand;
mod syntax;
+mod type_id;
use crate::syntax::namespace::Namespace;
use proc_macro::TokenStream;
-use syn::{parse_macro_input, ItemMod};
+use syn::{parse_macro_input, ItemMod, LitStr};
/// `#[cxx::bridge] mod ffi { ... }`
///
@@ -44,3 +45,9 @@
.unwrap_or_else(|err| err.to_compile_error())
.into()
}
+
+#[proc_macro]
+pub fn type_id(input: TokenStream) -> TokenStream {
+ let arg = parse_macro_input!(input as LitStr);
+ type_id::expand(arg).into()
+}