Add a standalone error type for try_demangle
diff --git a/src/lib.rs b/src/lib.rs
index 892f1bd..b46246a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -127,6 +127,12 @@
     }
 }
 
+/// Error returned from the `try_demangle` function below when demangling fails.
+#[derive(Debug, Clone)]
+pub struct TryDemangleError {
+    _priv: (),
+}
+
 /// The same as `demangle`, except return an `Err` if the string does not appear
 /// to be a Rust symbol, rather than "demangling" the given string as a no-op.
 ///
@@ -141,12 +147,12 @@
 /// // While `demangle` will just pass the non-symbol through as a no-op.
 /// assert_eq!(rustc_demangle::demangle(not_a_rust_symbol).as_str(), not_a_rust_symbol);
 /// ```
-pub fn try_demangle(s: &str) -> Result<Demangle, ()> {
+pub fn try_demangle(s: &str) -> Result<Demangle, TryDemangleError> {
     let sym = demangle(s);
     if sym.valid {
         Ok(sym)
     } else {
-        Err(())
+        Err(TryDemangleError { _priv: () })
     }
 }