Specialize only within the same namespace

Without this, on some compilers:

    src/cxx.cc:252:30: error: specialization of ‘template<class T> rust::cxxbridge02::Vec<T>::Vec()’ in different namespace [-fpermissive]
       rust::Vec<CXX_TYPE>::Vec() noexcept {
                                  ^
    src/cxx.cc:274:3: note: in expansion of macro ‘RUST_VEC_OPS’
       MACRO(u8, uint8_t)
       ^
    src/cxx.cc:295:1: note: in expansion of macro ‘FOR_EACH_SIZED_PRIMITIVE’
     FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_OPS)
     ^
    In file included from src/cxx.cc:1:0:
    include/cxx.h:216:3: error:   from definition of ‘template<class T> rust::cxxbridge02::Vec<T>::Vec()’ [-fpermissive]
       Vec() noexcept;
       ^
diff --git a/src/cxx.cc b/src/cxx.cc
index 7465f56..0ead3f0 100644
--- a/src/cxx.cc
+++ b/src/cxx.cc
@@ -249,23 +249,23 @@
 
 #define RUST_VEC_OPS(RUST_TYPE, CXX_TYPE)                                      \
   template <>                                                                  \
-  rust::Vec<CXX_TYPE>::Vec() noexcept {                                        \
+  Vec<CXX_TYPE>::Vec() noexcept {                                              \
     cxxbridge02$rust_vec$##RUST_TYPE##$new(this);                              \
   }                                                                            \
   template <>                                                                  \
-  void rust::Vec<CXX_TYPE>::drop() noexcept {                                  \
+  void Vec<CXX_TYPE>::drop() noexcept {                                        \
     return cxxbridge02$rust_vec$##RUST_TYPE##$drop(this);                      \
   }                                                                            \
   template <>                                                                  \
-  size_t rust::Vec<CXX_TYPE>::size() const noexcept {                          \
+  size_t Vec<CXX_TYPE>::size() const noexcept {                                \
     return cxxbridge02$rust_vec$##RUST_TYPE##$len(this);                       \
   }                                                                            \
   template <>                                                                  \
-  const CXX_TYPE *rust::Vec<CXX_TYPE>::data() const noexcept {                 \
+  const CXX_TYPE *Vec<CXX_TYPE>::data() const noexcept {                       \
     return cxxbridge02$rust_vec$##RUST_TYPE##$data(this);                      \
   }                                                                            \
   template <>                                                                  \
-  size_t rust::Vec<CXX_TYPE>::stride() noexcept {                              \
+  size_t Vec<CXX_TYPE>::stride() noexcept {                                    \
     return cxxbridge02$rust_vec$##RUST_TYPE##$stride();                        \
   }
 
@@ -292,4 +292,8 @@
 FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_EXTERNS)
 } // extern "C"
 
+namespace rust {
+inline namespace cxxbridge02 {
 FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_OPS)
+} // namespace cxxbridge02
+} // namespace rust