Inline cxx-symbols crate into cxx

The separation is no longer needed for Buck when linking with lld.
diff --git a/src/lib.rs b/src/lib.rs
index 8c7344b..b0fe00d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -369,8 +369,9 @@
 
 #[cfg(built_with_cargo)]
 extern crate link_cplusplus;
+
 #[macro_use]
-extern crate symbols;
+mod macros;
 
 mod cxx_string;
 mod cxx_vector;
@@ -383,6 +384,7 @@
 mod rust_str;
 mod rust_string;
 mod rust_vec;
+mod symbols;
 mod unique_ptr;
 mod unwind;
 
diff --git a/src/symbols/macros/assert.rs b/src/macros/assert.rs
similarity index 100%
rename from src/symbols/macros/assert.rs
rename to src/macros/assert.rs
diff --git a/src/symbols/macros/concat.rs b/src/macros/concat.rs
similarity index 100%
rename from src/symbols/macros/concat.rs
rename to src/macros/concat.rs
diff --git a/src/symbols/macros/mod.rs b/src/macros/mod.rs
similarity index 100%
rename from src/symbols/macros/mod.rs
rename to src/macros/mod.rs
diff --git a/src/rust_vec.rs b/src/rust_vec.rs
index 5e7082a..6f1d567 100644
--- a/src/rust_vec.rs
+++ b/src/rust_vec.rs
@@ -3,7 +3,7 @@
 
 #[repr(C)]
 pub struct RustVec<T> {
-    repr: Vec<T>,
+    pub(crate) repr: Vec<T>,
 }
 
 impl<T> RustVec<T> {
diff --git a/src/symbols/Cargo.toml b/src/symbols/Cargo.toml
deleted file mode 100644
index 93283ad..0000000
--- a/src/symbols/Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
-[package]
-name = "cxx-symbols"
-version = "0.4.3"
-authors = ["David Tolnay <dtolnay@gmail.com>"]
-edition = "2018"
-license = "MIT OR Apache-2.0"
-description = "Implementation detail of the `cxx` crate"
-repository = "https://github.com/dtolnay/cxx"
-documentation = "https://docs.rs/cxx"
-
-[lib]
-name = "symbols"
-path = "lib.rs"
diff --git a/src/symbols/lib.rs b/src/symbols/lib.rs
deleted file mode 100644
index da0f223..0000000
--- a/src/symbols/lib.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-//! *Implementation detail of the `cxx` crate.*
-
-#[macro_use]
-mod macros;
-
-mod exception;
-mod rust_str;
-mod rust_string;
-mod rust_vec;
diff --git a/src/symbols/mod.rs b/src/symbols/mod.rs
new file mode 100644
index 0000000..a9d158d
--- /dev/null
+++ b/src/symbols/mod.rs
@@ -0,0 +1,4 @@
+mod exception;
+mod rust_str;
+mod rust_string;
+mod rust_vec;
diff --git a/src/symbols/rust_string.rs b/src/symbols/rust_string.rs
index 94b2110..5c2982d 100644
--- a/src/symbols/rust_string.rs
+++ b/src/symbols/rust_string.rs
@@ -3,11 +3,6 @@
 use std::slice;
 use std::str;
 
-#[repr(C)]
-pub(crate) struct RustString {
-    repr: String,
-}
-
 #[export_name = "cxxbridge04$string$new"]
 unsafe extern "C" fn string_new(this: &mut MaybeUninit<String>) {
     ptr::write(this.as_mut_ptr(), String::new());
diff --git a/src/symbols/rust_vec.rs b/src/symbols/rust_vec.rs
index 7789454..fb49b40 100644
--- a/src/symbols/rust_vec.rs
+++ b/src/symbols/rust_vec.rs
@@ -1,12 +1,8 @@
 use crate::rust_string::RustString;
+use crate::rust_vec::RustVec;
 use std::mem;
 use std::ptr;
 
-#[repr(C)]
-pub(crate) struct RustVec<T> {
-    repr: Vec<T>,
-}
-
 macro_rules! rust_vec_shims {
     ($segment:expr, $ty:ty) => {
         const_assert_eq!(mem::size_of::<[usize; 3]>(), mem::size_of::<Vec<$ty>>());