diff options
Diffstat (limited to 'vendor/opaque-debug/src/lib.rs')
-rw-r--r-- | vendor/opaque-debug/src/lib.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/opaque-debug/src/lib.rs b/vendor/opaque-debug/src/lib.rs new file mode 100644 index 000000000..618626ead --- /dev/null +++ b/vendor/opaque-debug/src/lib.rs @@ -0,0 +1,24 @@ +//! Macro for opaque `Debug` trait implementation. +#![no_std] + +#[doc(hidden)] +pub extern crate core as __core; + +/// Macro for defining opaque `Debug` implementation. +/// +/// It will use the following format: "StructName { ... }". While it's +/// convinient to have it (e.g. for including into other structs), it could be +/// undesirable to leak internall state, which can happen for example through +/// uncareful logging. +#[macro_export] +macro_rules! impl_opaque_debug { + ($struct:ty) => { + impl $crate::__core::fmt::Debug for $struct { + fn fmt(&self, f: &mut $crate::__core::fmt::Formatter) + -> Result<(), $crate::__core::fmt::Error> + { + write!(f, concat!(stringify!($struct), " {{ ... }}")) + } + } + } +} |