Bump namespace to cxxbridge03
diff --git a/src/cxx.cc b/src/cxx.cc
index 8409772..5f7ac6a 100644
--- a/src/cxx.cc
+++ b/src/cxx.cc
@@ -17,72 +17,72 @@
 }
 
 extern "C" {
-const char *cxxbridge02$cxx_string$data(const std::string &s) noexcept {
+const char *cxxbridge03$cxx_string$data(const std::string &s) noexcept {
   return s.data();
 }
 
-size_t cxxbridge02$cxx_string$length(const std::string &s) noexcept {
+size_t cxxbridge03$cxx_string$length(const std::string &s) noexcept {
   return s.length();
 }
 
 // rust::String
-void cxxbridge02$string$new(rust::String *self) noexcept;
-void cxxbridge02$string$clone(rust::String *self,
+void cxxbridge03$string$new(rust::String *self) noexcept;
+void cxxbridge03$string$clone(rust::String *self,
                               const rust::String &other) noexcept;
-bool cxxbridge02$string$from(rust::String *self, const char *ptr,
+bool cxxbridge03$string$from(rust::String *self, const char *ptr,
                              size_t len) noexcept;
-void cxxbridge02$string$drop(rust::String *self) noexcept;
-const char *cxxbridge02$string$ptr(const rust::String *self) noexcept;
-size_t cxxbridge02$string$len(const rust::String *self) noexcept;
+void cxxbridge03$string$drop(rust::String *self) noexcept;
+const char *cxxbridge03$string$ptr(const rust::String *self) noexcept;
+size_t cxxbridge03$string$len(const rust::String *self) noexcept;
 
 // rust::Str
-bool cxxbridge02$str$valid(const char *ptr, size_t len) noexcept;
+bool cxxbridge03$str$valid(const char *ptr, size_t len) noexcept;
 } // extern "C"
 
 namespace rust {
-inline namespace cxxbridge02 {
+inline namespace cxxbridge03 {
 
-String::String() noexcept { cxxbridge02$string$new(this); }
+String::String() noexcept { cxxbridge03$string$new(this); }
 
 String::String(const String &other) noexcept {
-  cxxbridge02$string$clone(this, other);
+  cxxbridge03$string$clone(this, other);
 }
 
 String::String(String &&other) noexcept {
   this->repr = other.repr;
-  cxxbridge02$string$new(&other);
+  cxxbridge03$string$new(&other);
 }
 
-String::~String() noexcept { cxxbridge02$string$drop(this); }
+String::~String() noexcept { cxxbridge03$string$drop(this); }
 
 String::String(const std::string &s) {
   auto ptr = s.data();
   auto len = s.length();
-  if (!cxxbridge02$string$from(this, ptr, len)) {
+  if (!cxxbridge03$string$from(this, ptr, len)) {
     panic<std::invalid_argument>("data for rust::String is not utf-8");
   }
 }
 
 String::String(const char *s) {
   auto len = std::strlen(s);
-  if (!cxxbridge02$string$from(this, s, len)) {
+  if (!cxxbridge03$string$from(this, s, len)) {
     panic<std::invalid_argument>("data for rust::String is not utf-8");
   }
 }
 
 String &String::operator=(const String &other) noexcept {
   if (this != &other) {
-    cxxbridge02$string$drop(this);
-    cxxbridge02$string$clone(this, other);
+    cxxbridge03$string$drop(this);
+    cxxbridge03$string$clone(this, other);
   }
   return *this;
 }
 
 String &String::operator=(String &&other) noexcept {
   if (this != &other) {
-    cxxbridge02$string$drop(this);
+    cxxbridge03$string$drop(this);
     this->repr = other.repr;
-    cxxbridge02$string$new(&other);
+    cxxbridge03$string$new(&other);
   }
   return *this;
 }
@@ -92,12 +92,12 @@
 }
 
 const char *String::data() const noexcept {
-  return cxxbridge02$string$ptr(this);
+  return cxxbridge03$string$ptr(this);
 }
 
-size_t String::size() const noexcept { return cxxbridge02$string$len(this); }
+size_t String::size() const noexcept { return cxxbridge03$string$len(this); }
 
-size_t String::length() const noexcept { return cxxbridge02$string$len(this); }
+size_t String::length() const noexcept { return cxxbridge03$string$len(this); }
 
 String::String(unsafe_bitcopy_t, const String &bits) noexcept
     : repr(bits.repr) {}
@@ -112,13 +112,13 @@
 Str::Str(const Str &) noexcept = default;
 
 Str::Str(const std::string &s) : repr(Repr{s.data(), s.length()}) {
-  if (!cxxbridge02$str$valid(this->repr.ptr, this->repr.len)) {
+  if (!cxxbridge03$str$valid(this->repr.ptr, this->repr.len)) {
     panic<std::invalid_argument>("data for rust::Str is not utf-8");
   }
 }
 
 Str::Str(const char *s) : repr(Repr{s, std::strlen(s)}) {
-  if (!cxxbridge02$str$valid(this->repr.ptr, this->repr.len)) {
+  if (!cxxbridge03$str$valid(this->repr.ptr, this->repr.len)) {
     panic<std::invalid_argument>("data for rust::Str is not utf-8");
   }
 }
@@ -148,7 +148,7 @@
 }
 
 extern "C" {
-const char *cxxbridge02$error(const char *ptr, size_t len) {
+const char *cxxbridge03$error(const char *ptr, size_t len) {
   char *copy = new char[len];
   strncpy(copy, ptr, len);
   return copy;
@@ -158,7 +158,7 @@
 Error::Error(Str::Repr msg) noexcept : msg(msg) {}
 
 Error::Error(const Error &other) {
-  this->msg.ptr = cxxbridge02$error(other.msg.ptr, other.msg.len);
+  this->msg.ptr = cxxbridge03$error(other.msg.ptr, other.msg.len);
   this->msg.len = other.msg.len;
 }
 
@@ -173,96 +173,96 @@
 
 const char *Error::what() const noexcept { return this->msg.ptr; }
 
-} // namespace cxxbridge02
+} // namespace cxxbridge03
 } // namespace rust
 
 extern "C" {
-void cxxbridge02$unique_ptr$std$string$null(
+void cxxbridge03$unique_ptr$std$string$null(
     std::unique_ptr<std::string> *ptr) noexcept {
   new (ptr) std::unique_ptr<std::string>();
 }
-void cxxbridge02$unique_ptr$std$string$raw(std::unique_ptr<std::string> *ptr,
+void cxxbridge03$unique_ptr$std$string$raw(std::unique_ptr<std::string> *ptr,
                                            std::string *raw) noexcept {
   new (ptr) std::unique_ptr<std::string>(raw);
 }
-const std::string *cxxbridge02$unique_ptr$std$string$get(
+const std::string *cxxbridge03$unique_ptr$std$string$get(
     const std::unique_ptr<std::string> &ptr) noexcept {
   return ptr.get();
 }
-std::string *cxxbridge02$unique_ptr$std$string$release(
+std::string *cxxbridge03$unique_ptr$std$string$release(
     std::unique_ptr<std::string> &ptr) noexcept {
   return ptr.release();
 }
-void cxxbridge02$unique_ptr$std$string$drop(
+void cxxbridge03$unique_ptr$std$string$drop(
     std::unique_ptr<std::string> *ptr) noexcept {
   ptr->~unique_ptr();
 }
 } // extern "C"
 
 #define STD_VECTOR_OPS(RUST_TYPE, CXX_TYPE)                                    \
-  size_t cxxbridge02$std$vector$##RUST_TYPE##$size(                            \
+  size_t cxxbridge03$std$vector$##RUST_TYPE##$size(                            \
       const std::vector<CXX_TYPE> &s) noexcept {                               \
     return s.size();                                                           \
   }                                                                            \
-  const CXX_TYPE *cxxbridge02$std$vector$##RUST_TYPE##$get_unchecked(          \
+  const CXX_TYPE *cxxbridge03$std$vector$##RUST_TYPE##$get_unchecked(          \
       const std::vector<CXX_TYPE> &s, size_t pos) noexcept {                   \
     return &s[pos];                                                            \
   }                                                                            \
-  void cxxbridge02$unique_ptr$std$vector$##RUST_TYPE##$null(                   \
+  void cxxbridge03$unique_ptr$std$vector$##RUST_TYPE##$null(                   \
       std::unique_ptr<std::vector<CXX_TYPE>> *ptr) noexcept {                  \
     new (ptr) std::unique_ptr<std::vector<CXX_TYPE>>();                        \
   }                                                                            \
-  void cxxbridge02$unique_ptr$std$vector$##RUST_TYPE##$raw(                    \
+  void cxxbridge03$unique_ptr$std$vector$##RUST_TYPE##$raw(                    \
       std::unique_ptr<std::vector<CXX_TYPE>> *ptr,                             \
       std::vector<CXX_TYPE> *raw) noexcept {                                   \
     new (ptr) std::unique_ptr<std::vector<CXX_TYPE>>(raw);                     \
   }                                                                            \
   const std::vector<CXX_TYPE>                                                  \
-      *cxxbridge02$unique_ptr$std$vector$##RUST_TYPE##$get(                    \
+      *cxxbridge03$unique_ptr$std$vector$##RUST_TYPE##$get(                    \
           const std::unique_ptr<std::vector<CXX_TYPE>> &ptr) noexcept {        \
     return ptr.get();                                                          \
   }                                                                            \
   std::vector<CXX_TYPE>                                                        \
-      *cxxbridge02$unique_ptr$std$vector$##RUST_TYPE##$release(                \
+      *cxxbridge03$unique_ptr$std$vector$##RUST_TYPE##$release(                \
           std::unique_ptr<std::vector<CXX_TYPE>> &ptr) noexcept {              \
     return ptr.release();                                                      \
   }                                                                            \
-  void cxxbridge02$unique_ptr$std$vector$##RUST_TYPE##$drop(                   \
+  void cxxbridge03$unique_ptr$std$vector$##RUST_TYPE##$drop(                   \
       std::unique_ptr<std::vector<CXX_TYPE>> *ptr) noexcept {                  \
     ptr->~unique_ptr();                                                        \
   }
 
 #define RUST_VEC_EXTERNS(RUST_TYPE, CXX_TYPE)                                  \
-  void cxxbridge02$rust_vec$##RUST_TYPE##$new(                                 \
+  void cxxbridge03$rust_vec$##RUST_TYPE##$new(                                 \
       rust::Vec<CXX_TYPE> *ptr) noexcept;                                      \
-  void cxxbridge02$rust_vec$##RUST_TYPE##$drop(                                \
+  void cxxbridge03$rust_vec$##RUST_TYPE##$drop(                                \
       rust::Vec<CXX_TYPE> *ptr) noexcept;                                      \
-  size_t cxxbridge02$rust_vec$##RUST_TYPE##$len(                               \
+  size_t cxxbridge03$rust_vec$##RUST_TYPE##$len(                               \
       const rust::Vec<CXX_TYPE> *ptr) noexcept;                                \
-  const CXX_TYPE *cxxbridge02$rust_vec$##RUST_TYPE##$data(                     \
+  const CXX_TYPE *cxxbridge03$rust_vec$##RUST_TYPE##$data(                     \
       const rust::Vec<CXX_TYPE> *ptr) noexcept;                                \
-  size_t cxxbridge02$rust_vec$##RUST_TYPE##$stride() noexcept;
+  size_t cxxbridge03$rust_vec$##RUST_TYPE##$stride() noexcept;
 
 #define RUST_VEC_OPS(RUST_TYPE, CXX_TYPE)                                      \
   template <>                                                                  \
   Vec<CXX_TYPE>::Vec() noexcept {                                              \
-    cxxbridge02$rust_vec$##RUST_TYPE##$new(this);                              \
+    cxxbridge03$rust_vec$##RUST_TYPE##$new(this);                              \
   }                                                                            \
   template <>                                                                  \
   void Vec<CXX_TYPE>::drop() noexcept {                                        \
-    return cxxbridge02$rust_vec$##RUST_TYPE##$drop(this);                      \
+    return cxxbridge03$rust_vec$##RUST_TYPE##$drop(this);                      \
   }                                                                            \
   template <>                                                                  \
   size_t Vec<CXX_TYPE>::size() const noexcept {                                \
-    return cxxbridge02$rust_vec$##RUST_TYPE##$len(this);                       \
+    return cxxbridge03$rust_vec$##RUST_TYPE##$len(this);                       \
   }                                                                            \
   template <>                                                                  \
   const CXX_TYPE *Vec<CXX_TYPE>::data() const noexcept {                       \
-    return cxxbridge02$rust_vec$##RUST_TYPE##$data(this);                      \
+    return cxxbridge03$rust_vec$##RUST_TYPE##$data(this);                      \
   }                                                                            \
   template <>                                                                  \
   size_t Vec<CXX_TYPE>::stride() noexcept {                                    \
-    return cxxbridge02$rust_vec$##RUST_TYPE##$stride();                        \
+    return cxxbridge03$rust_vec$##RUST_TYPE##$stride();                        \
   }
 
 // Usize and isize are the same type as one of the below.
@@ -289,7 +289,7 @@
 } // extern "C"
 
 namespace rust {
-inline namespace cxxbridge02 {
+inline namespace cxxbridge03 {
 FOR_EACH_SIZED_PRIMITIVE(RUST_VEC_OPS)
-} // namespace cxxbridge02
+} // namespace cxxbridge03
 } // namespace rust
diff --git a/src/cxx_string.rs b/src/cxx_string.rs
index 54fad27..ffd0c5c 100644
--- a/src/cxx_string.rs
+++ b/src/cxx_string.rs
@@ -4,9 +4,9 @@
 use std::str::{self, Utf8Error};
 
 extern "C" {
-    #[link_name = "cxxbridge02$cxx_string$data"]
+    #[link_name = "cxxbridge03$cxx_string$data"]
     fn string_data(_: &CxxString) -> *const u8;
-    #[link_name = "cxxbridge02$cxx_string$length"]
+    #[link_name = "cxxbridge03$cxx_string$length"]
     fn string_length(_: &CxxString) -> usize;
 }
 
diff --git a/src/cxx_vector.rs b/src/cxx_vector.rs
index 695fcad..0d952f9 100644
--- a/src/cxx_vector.rs
+++ b/src/cxx_vector.rs
@@ -137,7 +137,7 @@
             fn __vector_size(v: &CxxVector<$ty>) -> usize {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$std$vector$", stringify!($ty), "$size")]
+                        #[link_name = concat!("cxxbridge03$std$vector$", stringify!($ty), "$size")]
                         fn __vector_size(_: &CxxVector<$ty>) -> usize;
                     }
                 }
@@ -146,7 +146,7 @@
             unsafe fn __get_unchecked(v: &CxxVector<$ty>, pos: usize) -> &$ty {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$std$vector$", stringify!($ty), "$get_unchecked")]
+                        #[link_name = concat!("cxxbridge03$std$vector$", stringify!($ty), "$get_unchecked")]
                         fn __get_unchecked(_: &CxxVector<$ty>, _: usize) -> *const $ty;
                     }
                 }
@@ -155,7 +155,7 @@
             fn __unique_ptr_null() -> *mut c_void {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$unique_ptr$std$vector$", stringify!($ty), "$null")]
+                        #[link_name = concat!("cxxbridge03$unique_ptr$std$vector$", stringify!($ty), "$null")]
                         fn __unique_ptr_null(this: *mut *mut c_void);
                     }
                 }
@@ -166,7 +166,7 @@
             unsafe fn __unique_ptr_raw(raw: *mut CxxVector<Self>) -> *mut c_void {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$unique_ptr$std$vector$", stringify!($ty), "$raw")]
+                        #[link_name = concat!("cxxbridge03$unique_ptr$std$vector$", stringify!($ty), "$raw")]
                         fn __unique_ptr_raw(this: *mut *mut c_void, raw: *mut CxxVector<$ty>);
                     }
                 }
@@ -177,7 +177,7 @@
             unsafe fn __unique_ptr_get(repr: *mut c_void) -> *const CxxVector<Self> {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$unique_ptr$std$vector$", stringify!($ty), "$get")]
+                        #[link_name = concat!("cxxbridge03$unique_ptr$std$vector$", stringify!($ty), "$get")]
                         fn __unique_ptr_get(this: *const *mut c_void) -> *const CxxVector<$ty>;
                     }
                 }
@@ -186,7 +186,7 @@
             unsafe fn __unique_ptr_release(mut repr: *mut c_void) -> *mut CxxVector<Self> {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$unique_ptr$std$vector$", stringify!($ty), "$release")]
+                        #[link_name = concat!("cxxbridge03$unique_ptr$std$vector$", stringify!($ty), "$release")]
                         fn __unique_ptr_release(this: *mut *mut c_void) -> *mut CxxVector<$ty>;
                     }
                 }
@@ -195,7 +195,7 @@
             unsafe fn __unique_ptr_drop(mut repr: *mut c_void) {
                 extern "C" {
                     attr! {
-                        #[link_name = concat!("cxxbridge02$unique_ptr$std$vector$", stringify!($ty), "$drop")]
+                        #[link_name = concat!("cxxbridge03$unique_ptr$std$vector$", stringify!($ty), "$drop")]
                         fn __unique_ptr_drop(this: *mut *mut c_void);
                     }
                 }
diff --git a/src/exception.rs b/src/exception.rs
index c436196..52f0cf6 100644
--- a/src/exception.rs
+++ b/src/exception.rs
@@ -21,7 +21,7 @@
     }
 }
 
-#[export_name = "cxxbridge02$exception"]
+#[export_name = "cxxbridge03$exception"]
 unsafe extern "C" fn exception(ptr: *const u8, len: usize) -> *const u8 {
     let slice = slice::from_raw_parts(ptr, len);
     let boxed = String::from_utf8_lossy(slice).into_owned().into_boxed_str();
diff --git a/src/result.rs b/src/result.rs
index 296efea..0373bd8 100644
--- a/src/result.rs
+++ b/src/result.rs
@@ -32,7 +32,7 @@
     let len = msg.len();
 
     extern "C" {
-        #[link_name = "cxxbridge02$error"]
+        #[link_name = "cxxbridge03$error"]
         fn error(ptr: *const u8, len: usize) -> *const u8;
     }
 
diff --git a/src/rust_str.rs b/src/rust_str.rs
index 184e2c1..fe11473 100644
--- a/src/rust_str.rs
+++ b/src/rust_str.rs
@@ -25,7 +25,7 @@
     }
 }
 
-#[export_name = "cxxbridge02$str$valid"]
+#[export_name = "cxxbridge03$str$valid"]
 unsafe extern "C" fn str_valid(ptr: *const u8, len: usize) -> bool {
     let slice = slice::from_raw_parts(ptr, len);
     str::from_utf8(slice).is_ok()
diff --git a/src/rust_string.rs b/src/rust_string.rs
index 3fba2f5..6f3e64b 100644
--- a/src/rust_string.rs
+++ b/src/rust_string.rs
@@ -30,17 +30,17 @@
     }
 }
 
-#[export_name = "cxxbridge02$string$new"]
+#[export_name = "cxxbridge03$string$new"]
 unsafe extern "C" fn string_new(this: &mut MaybeUninit<String>) {
     ptr::write(this.as_mut_ptr(), String::new());
 }
 
-#[export_name = "cxxbridge02$string$clone"]
+#[export_name = "cxxbridge03$string$clone"]
 unsafe extern "C" fn string_clone(this: &mut MaybeUninit<String>, other: &String) {
     ptr::write(this.as_mut_ptr(), other.clone());
 }
 
-#[export_name = "cxxbridge02$string$from"]
+#[export_name = "cxxbridge03$string$from"]
 unsafe extern "C" fn string_from(
     this: &mut MaybeUninit<String>,
     ptr: *const u8,
@@ -56,17 +56,17 @@
     }
 }
 
-#[export_name = "cxxbridge02$string$drop"]
+#[export_name = "cxxbridge03$string$drop"]
 unsafe extern "C" fn string_drop(this: &mut ManuallyDrop<String>) {
     ManuallyDrop::drop(this);
 }
 
-#[export_name = "cxxbridge02$string$ptr"]
+#[export_name = "cxxbridge03$string$ptr"]
 unsafe extern "C" fn string_ptr(this: &String) -> *const u8 {
     this.as_ptr()
 }
 
-#[export_name = "cxxbridge02$string$len"]
+#[export_name = "cxxbridge03$string$len"]
 unsafe extern "C" fn string_len(this: &String) -> usize {
     this.len()
 }
diff --git a/src/rust_vec.rs b/src/rust_vec.rs
index d5de489..c17310d 100644
--- a/src/rust_vec.rs
+++ b/src/rust_vec.rs
@@ -47,31 +47,31 @@
 
         const _: () = {
             attr! {
-                #[export_name = concat!("cxxbridge02$rust_vec$", stringify!($ty), "$new")]
+                #[export_name = concat!("cxxbridge03$rust_vec$", stringify!($ty), "$new")]
                 unsafe extern "C" fn __new(this: *mut RustVec<$ty>) {
                     ptr::write(this, RustVec::new());
                 }
             }
             attr! {
-                #[export_name = concat!("cxxbridge02$rust_vec$", stringify!($ty), "$drop")]
+                #[export_name = concat!("cxxbridge03$rust_vec$", stringify!($ty), "$drop")]
                 unsafe extern "C" fn __drop(this: *mut RustVec<$ty>) {
                     ptr::drop_in_place(this);
                 }
             }
             attr! {
-                #[export_name = concat!("cxxbridge02$rust_vec$", stringify!($ty), "$len")]
+                #[export_name = concat!("cxxbridge03$rust_vec$", stringify!($ty), "$len")]
                 unsafe extern "C" fn __len(this: *const RustVec<$ty>) -> usize {
                     (*this).len()
                 }
             }
             attr! {
-                #[export_name = concat!("cxxbridge02$rust_vec$", stringify!($ty), "$data")]
+                #[export_name = concat!("cxxbridge03$rust_vec$", stringify!($ty), "$data")]
                 unsafe extern "C" fn __data(this: *const RustVec<$ty>) -> *const $ty {
                     (*this).as_ptr()
                 }
             }
             attr! {
-                #[export_name = concat!("cxxbridge02$rust_vec$", stringify!($ty), "$stride")]
+                #[export_name = concat!("cxxbridge03$rust_vec$", stringify!($ty), "$stride")]
                 unsafe extern "C" fn __stride() -> usize {
                     mem::size_of::<$ty>()
                 }
diff --git a/src/unique_ptr.rs b/src/unique_ptr.rs
index 98b4b7d..34a1f0e 100644
--- a/src/unique_ptr.rs
+++ b/src/unique_ptr.rs
@@ -174,15 +174,15 @@
 }
 
 extern "C" {
-    #[link_name = "cxxbridge02$unique_ptr$std$string$null"]
+    #[link_name = "cxxbridge03$unique_ptr$std$string$null"]
     fn unique_ptr_std_string_null(this: *mut *mut c_void);
-    #[link_name = "cxxbridge02$unique_ptr$std$string$raw"]
+    #[link_name = "cxxbridge03$unique_ptr$std$string$raw"]
     fn unique_ptr_std_string_raw(this: *mut *mut c_void, raw: *mut CxxString);
-    #[link_name = "cxxbridge02$unique_ptr$std$string$get"]
+    #[link_name = "cxxbridge03$unique_ptr$std$string$get"]
     fn unique_ptr_std_string_get(this: *const *mut c_void) -> *const CxxString;
-    #[link_name = "cxxbridge02$unique_ptr$std$string$release"]
+    #[link_name = "cxxbridge03$unique_ptr$std$string$release"]
     fn unique_ptr_std_string_release(this: *mut *mut c_void) -> *mut CxxString;
-    #[link_name = "cxxbridge02$unique_ptr$std$string$drop"]
+    #[link_name = "cxxbridge03$unique_ptr$std$string$drop"]
     fn unique_ptr_std_string_drop(this: *mut *mut c_void);
 }