Expose public vector module
diff --git a/src/cxx_vector.rs b/src/cxx_vector.rs
index cf15e73..df29616 100644
--- a/src/cxx_vector.rs
+++ b/src/cxx_vector.rs
@@ -1,3 +1,6 @@
+//! Less used details of `CxxVector` are exposed in this module. `CxxVector`
+//! itself is exposed at the crate root.
+
 use crate::extern_type::ExternType;
 use crate::kind::Trivial;
 use crate::string::CxxString;
@@ -8,6 +11,9 @@
 use core::ptr;
 use core::slice;
 
+#[doc(inline)]
+pub use crate::Vector;
+
 /// Binding to C++ `std::vector<T, std::allocator<T>>`.
 ///
 /// # Invariants
@@ -94,6 +100,9 @@
     }
 }
 
+/// Iterator over elements of a `CxxVector` by shared reference.
+///
+/// The iterator element type is `&'a T`.
 pub struct Iter<'a, T> {
     v: &'a CxxVector<T>,
     index: usize,
@@ -133,7 +142,7 @@
     }
 }
 
-pub struct TypeName<T> {
+pub(crate) struct TypeName<T> {
     element: PhantomData<T>,
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index 0142197..8e1c5e3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -409,13 +409,14 @@
 mod unique_ptr;
 mod unwind;
 #[path = "cxx_vector.rs"]
-mod vector;
+pub mod vector;
 
 pub use crate::exception::Exception;
 pub use crate::extern_type::{kind, ExternType};
 pub use crate::shared_ptr::SharedPtr;
 pub use crate::string::CxxString;
 pub use crate::unique_ptr::UniquePtr;
+#[doc(inline)]
 pub use crate::vector::CxxVector;
 pub use cxxbridge_macro::bridge;