Store cxx-gen error as braced struct

This appears more sympathetically in rustdoc as:

    pub struct Error { /* fields omitted */ }

rather than:

    pub struct Error(_);
diff --git a/gen/lib/src/error.rs b/gen/lib/src/error.rs
index 3cf1e62..26249be 100644
--- a/gen/lib/src/error.rs
+++ b/gen/lib/src/error.rs
@@ -4,22 +4,30 @@
 use std::error::Error as StdError;
 use std::fmt::{self, Debug, Display};
 
-pub struct Error(pub(crate) crate::gen::Error);
+pub struct Error {
+    pub(crate) err: crate::gen::Error,
+}
+
+impl From<crate::gen::Error> for Error {
+    fn from(err: crate::gen::Error) -> Self {
+        Error { err }
+    }
+}
 
 impl Display for Error {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        Display::fmt(&self.0, f)
+        Display::fmt(&self.err, f)
     }
 }
 
 impl Debug for Error {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        Debug::fmt(&self.0, f)
+        Debug::fmt(&self.err, f)
     }
 }
 
 impl StdError for Error {
     fn source(&self) -> Option<&(dyn StdError + 'static)> {
-        self.0.source()
+        self.err.source()
     }
 }
diff --git a/gen/lib/src/lib.rs b/gen/lib/src/lib.rs
index bdeedfc..6456200 100644
--- a/gen/lib/src/lib.rs
+++ b/gen/lib/src/lib.rs
@@ -22,6 +22,6 @@
 pub fn generate_header_and_cc(rust_source: TokenStream, opt: &Opt) -> Result<GeneratedCode, Error> {
     let syntax = syn::parse2(rust_source)
         .map_err(crate::gen::Error::from)
-        .map_err(Error)?;
-    gen::generate(syntax, opt).map_err(Error)
+        .map_err(Error::from)?;
+    gen::generate(syntax, opt).map_err(Error::from)
 }