Condense type ids rendered by rustc
diff --git a/src/lib.rs b/src/lib.rs
index d15d441..32d42a0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -345,6 +345,7 @@
 
 #![doc(html_root_url = "https://docs.rs/cxx/0.3.0")]
 #![deny(improper_ctypes)]
+#![allow(non_camel_case_types)]
 #![allow(
     clippy::cognitive_complexity,
     clippy::declare_interior_mutable_const,
@@ -377,7 +378,6 @@
 mod rust_str;
 mod rust_string;
 mod rust_vec;
-mod type_id;
 mod unique_ptr;
 mod unwind;
 
@@ -403,7 +403,22 @@
     pub use crate::rust_str::RustStr;
     pub use crate::rust_string::RustString;
     pub use crate::rust_vec::RustVec;
-    pub use crate::type_id::*;
     pub use crate::unique_ptr::UniquePtrTarget;
     pub use crate::unwind::catch_unwind;
 }
+
+macro_rules! chars {
+    ($($ch:ident)*) => {
+        $(
+            #[doc(hidden)]
+            pub enum $ch {}
+        )*
+    };
+}
+
+chars! {
+    _0 _1 _2 _3 _4 _5 _6 _7 _8 _9
+    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+    a b c d e f g h i j k l m n o p q r s t u v w x y z
+    __ // underscore
+}