Rename std::vector binding to CxxVector
diff --git a/macro/src/expand.rs b/macro/src/expand.rs
index 5554d28..782da05 100644
--- a/macro/src/expand.rs
+++ b/macro/src/expand.rs
@@ -26,7 +26,7 @@
     // "Header" to define newtypes locally so we can implement
     // traits on them.
     expanded.extend(quote! {
-        pub struct Vector<T>(pub ::cxx::RealVector<T>);
+        pub struct Vector<T>(pub ::cxx::CxxVector<T>);
         impl<T: cxx::private::VectorTarget<T>> Vector<T> {
             pub fn size(&self) -> usize {
                 self.0.size()
@@ -46,7 +46,7 @@
         }
         impl<'a, T: cxx::private::VectorTarget<T>> IntoIterator for &'a Vector<T> {
             type Item = &'a T;
-            type IntoIter = <&'a ::cxx::RealVector<T> as IntoIterator>::IntoIter;
+            type IntoIter = <&'a ::cxx::CxxVector<T> as IntoIterator>::IntoIter;
 
             fn into_iter(self) -> Self::IntoIter {
                 self.0.into_iter()
@@ -112,7 +112,7 @@
         } else if let Type::Vector(ptr) = ty {
             if let Type::Ident(ident) = &ptr.inner {
                 if Atom::from(ident).is_none() {
-                    // Generate code for Vector<T> if T is not an atom
+                    // Generate code for CxxVector<T> if T is not an atom
                     // Code for atoms is already generated
                     expanded.extend(expand_vector(namespace, &ptr.inner));
                 }
@@ -688,29 +688,29 @@
 
     quote! {
         impl ::cxx::private::VectorTarget<#inner> for #inner {
-            fn get_unchecked(v: &::cxx::RealVector<#inner>, pos: usize) -> &#inner {
+            fn get_unchecked(v: &::cxx::CxxVector<#inner>, pos: usize) -> &#inner {
                 extern "C" {
                     #[link_name = #link_get_unchecked]
-                    fn __get_unchecked(_: &::cxx::RealVector<#inner>, _: usize) -> &#inner;
+                    fn __get_unchecked(_: &::cxx::CxxVector<#inner>, _: usize) -> &#inner;
                 }
                 unsafe {
                     __get_unchecked(v, pos)
                 }
             }
-            fn vector_length(v: &::cxx::RealVector<#inner>) -> usize {
+            fn vector_length(v: &::cxx::CxxVector<#inner>) -> usize {
                 unsafe {
                     extern "C" {
                         #[link_name = #link_length]
-                        fn __vector_length(_: &::cxx::RealVector<#inner>) -> usize;
+                        fn __vector_length(_: &::cxx::CxxVector<#inner>) -> usize;
                     }
                     __vector_length(v)
                 }
             }
-            fn push_back(v: &::cxx::RealVector<#inner>, item: &#inner) {
+            fn push_back(v: &::cxx::CxxVector<#inner>, item: &#inner) {
                 unsafe {
                     extern "C" {
                         #[link_name = #link_push_back]
-                        fn __push_back(_: &::cxx::RealVector<#inner>, _: &#inner) -> usize;
+                        fn __push_back(_: &::cxx::CxxVector<#inner>, _: &#inner) -> usize;
                     }
                     __push_back(v, item);
                 }
@@ -731,29 +731,29 @@
 
     quote! {
         impl VectorTarget<#inner> for #inner {
-            fn get_unchecked(v: &RealVector<#inner>, pos: usize) -> &#inner {
+            fn get_unchecked(v: &CxxVector<#inner>, pos: usize) -> &#inner {
                 extern "C" {
                     #[link_name = #link_get_unchecked]
-                    fn __get_unchecked(_: &RealVector<#inner>, _: usize) -> &#inner;
+                    fn __get_unchecked(_: &CxxVector<#inner>, _: usize) -> &#inner;
                 }
                 unsafe {
                     __get_unchecked(v, pos)
                 }
             }
-            fn vector_length(v: &RealVector<#inner>) -> usize {
+            fn vector_length(v: &CxxVector<#inner>) -> usize {
                 unsafe {
                     extern "C" {
                         #[link_name = #link_length]
-                        fn __vector_length(_: &RealVector<#inner>) -> usize;
+                        fn __vector_length(_: &CxxVector<#inner>) -> usize;
                     }
                     __vector_length(v)
                 }
             }
-            fn push_back(v: &RealVector<#inner>, item: &#inner) {
+            fn push_back(v: &CxxVector<#inner>, item: &#inner) {
                 unsafe {
                     extern "C" {
                         #[link_name = #link_push_back]
-                        fn __push_back(_: &RealVector<#inner>, _: &#inner) -> usize;
+                        fn __push_back(_: &CxxVector<#inner>, _: &#inner) -> usize;
                     }
                     __push_back(v, item);
                 }
diff --git a/src/vector.rs b/src/cxx_vector.rs
similarity index 83%
rename from src/vector.rs
rename to src/cxx_vector.rs
index 1436165..feb2e29 100644
--- a/src/vector.rs
+++ b/src/cxx_vector.rs
@@ -1,16 +1,16 @@
 pub trait VectorTarget<T> {
-    fn get_unchecked(v: &RealVector<T>, pos: usize) -> &T
+    fn get_unchecked(v: &CxxVector<T>, pos: usize) -> &T
     where
         Self: Sized;
-    fn vector_length(v: &RealVector<T>) -> usize
+    fn vector_length(v: &CxxVector<T>) -> usize
     where
         Self: Sized;
-    fn push_back(v: &RealVector<T>, item: &T)
+    fn push_back(v: &CxxVector<T>, item: &T)
     where
         Self: Sized;
 }
 
-/// Binding to C++ `std::vector`.
+/// Binding to C++ `std::vector<T>`.
 ///
 /// # Invariants
 ///
@@ -21,11 +21,11 @@
 /// look at a Vector through a reference or smart pointer, as in `&Vector`
 /// or `UniquePtr<Vector>`.
 #[repr(C)]
-pub struct RealVector<T> {
+pub struct CxxVector<T> {
     _private: [T; 0],
 }
 
-impl<T: VectorTarget<T>> RealVector<T> {
+impl<T: VectorTarget<T>> CxxVector<T> {
     /// Returns the length of the vector in bytes.
     pub fn size(&self) -> usize {
         T::vector_length(self)
@@ -53,14 +53,14 @@
     }
 }
 
-unsafe impl<T> Send for RealVector<T> where T: Send + VectorTarget<T> {}
+unsafe impl<T> Send for CxxVector<T> where T: Send + VectorTarget<T> {}
 
 pub struct VectorIntoIterator<'a, T> {
-    v: &'a RealVector<T>,
+    v: &'a CxxVector<T>,
     index: usize,
 }
 
-impl<'a, T: VectorTarget<T>> IntoIterator for &'a RealVector<T> {
+impl<'a, T: VectorTarget<T>> IntoIterator for &'a CxxVector<T> {
     type Item = &'a T;
     type IntoIter = VectorIntoIterator<'a, T>;
 
diff --git a/src/lib.rs b/src/lib.rs
index a8ce904..a25f83d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -360,6 +360,7 @@
 mod assert;
 
 mod cxx_string;
+mod cxx_vector;
 mod error;
 mod exception;
 mod function;
@@ -374,18 +375,17 @@
 mod syntax;
 mod unique_ptr;
 mod unwind;
-mod vector;
 
 pub use crate::cxx_string::CxxString;
+pub use crate::cxx_vector::CxxVector;
 pub use crate::exception::Exception;
 pub use crate::unique_ptr::UniquePtr;
-pub use crate::vector::RealVector;
-pub use crate::vector::VectorIntoIterator;
 pub use cxxbridge_macro::bridge;
 
 // Not public API.
 #[doc(hidden)]
 pub mod private {
+    pub use crate::cxx_vector::VectorTarget;
     pub use crate::function::FatFunction;
     pub use crate::opaque::Opaque;
     pub use crate::result::{r#try, Result};
@@ -395,7 +395,6 @@
     pub use crate::rust_vec::RustVec;
     pub use crate::unique_ptr::UniquePtrTarget;
     pub use crate::unwind::catch_unwind;
-    pub use crate::vector::VectorTarget;
 }
 
 use crate::error::Result;
diff --git a/src/rust_vec.rs b/src/rust_vec.rs
index b4eed3b..671d8f7 100644
--- a/src/rust_vec.rs
+++ b/src/rust_vec.rs
@@ -1,4 +1,4 @@
-use crate::vector::VectorTarget;
+use crate::cxx_vector::VectorTarget;
 
 #[repr(C)]
 pub struct RustVec<T: VectorTarget<T>> {