Share one Namespace type between gen and macro
diff --git a/gen/mod.rs b/gen/mod.rs
index 523ba1d..998cd14 100644
--- a/gen/mod.rs
+++ b/gen/mod.rs
@@ -3,12 +3,11 @@
 
 mod error;
 pub(super) mod include;
-mod namespace;
 pub(super) mod out;
 mod write;
 
 use self::error::format_err;
-use self::namespace::Namespace;
+use crate::syntax::namespace::Namespace;
 use crate::syntax::{self, check, ident, Types};
 use quote::quote;
 use std::fs;
diff --git a/gen/namespace.rs b/gen/namespace.rs
deleted file mode 100644
index 557e331..0000000
--- a/gen/namespace.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-use std::fmt::{self, Display};
-use std::slice::Iter;
-
-#[derive(Clone)]
-pub struct Namespace {
-    segments: Vec<String>,
-}
-
-impl Namespace {
-    pub fn new(segments: Vec<String>) -> Self {
-        Namespace { segments }
-    }
-
-    pub fn iter(&self) -> Iter<String> {
-        self.segments.iter()
-    }
-}
-
-impl Display for Namespace {
-    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        for segment in self {
-            f.write_str(segment)?;
-            f.write_str("$")?;
-        }
-        Ok(())
-    }
-}
-
-impl<'a> IntoIterator for &'a Namespace {
-    type Item = &'a String;
-    type IntoIter = Iter<'a, String>;
-    fn into_iter(self) -> Self::IntoIter {
-        self.iter()
-    }
-}
diff --git a/gen/out.rs b/gen/out.rs
index 35f2cd7..08bf85f 100644
--- a/gen/out.rs
+++ b/gen/out.rs
@@ -1,5 +1,5 @@
 use crate::gen::include::Includes;
-use crate::gen::namespace::Namespace;
+use crate::syntax::namespace::Namespace;
 use std::cell::RefCell;
 use std::fmt::{self, Arguments, Write};
 
diff --git a/gen/write.rs b/gen/write.rs
index 7a57111..28a2d3b 100644
--- a/gen/write.rs
+++ b/gen/write.rs
@@ -1,7 +1,7 @@
-use crate::gen::namespace::Namespace;
 use crate::gen::out::OutFile;
 use crate::gen::{include, Opt};
 use crate::syntax::atom::Atom::{self, *};
+use crate::syntax::namespace::Namespace;
 use crate::syntax::{Api, ExternFn, ExternType, Receiver, Signature, Struct, Type, Types, Var};
 use proc_macro2::Ident;
 use std::collections::HashMap;