Move non-boilerplate impls out of impls.rs
diff --git a/syntax/namespace.rs b/syntax/namespace.rs
index 5eb203a..41a38dd 100644
--- a/syntax/namespace.rs
+++ b/syntax/namespace.rs
@@ -1,4 +1,5 @@
use crate::syntax::qualified::QualifiedName;
+use crate::syntax::Api;
#[cfg(test)]
use proc_macro2::Span;
use quote::IdentFragment;
@@ -79,3 +80,17 @@
self.iter()
}
}
+
+impl Api {
+ pub fn get_namespace(&self) -> Option<&Namespace> {
+ match self {
+ Api::CxxFunction(cfn) => Some(&cfn.ident.cxx.ns),
+ Api::CxxType(cty) => Some(&cty.ident.cxx.ns),
+ Api::Enum(enm) => Some(&enm.ident.cxx.ns),
+ Api::Struct(strct) => Some(&strct.ident.cxx.ns),
+ Api::RustType(rty) => Some(&rty.ident.cxx.ns),
+ Api::RustFunction(rfn) => Some(&rfn.ident.cxx.ns),
+ Api::Impl(_) | Api::Include(_) | Api::TypeAlias(_) => None,
+ }
+ }
+}