Trait bitflags::__core::fmt::Debug
[−]
[src]
pub trait Debug {
fn fmt(&self, &mut Formatter) -> Result<(), Error>;
}Format trait for the ? character.
Debug should format the output in a programmer-facing, debugging context.
Generally speaking, you should just derive a Debug implementation.
When used with the alternate format specifier #?, the output is pretty-printed.
For more information on formatters, see the module-level documentation.
This trait can be used with #[derive].
Examples
Deriving an implementation:
#[derive(Debug)] struct Point { x: i32, y: i32, } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin);
Manually implementing:
use std::fmt; struct Point { x: i32, y: i32, } impl fmt::Debug for Point { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "Point {{ x: {}, y: {} }}", self.x, self.y) } } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin);
This outputs:
The origin is: Point { x: 0, y: 0 }
There are a number of debug_* methods on Formatter to help you with manual
implementations, such as debug_struct.
Debug implementations using either derive or the debug builder API
on Formatter support pretty printing using the alternate flag: {:#?}.
Pretty printing with #?:
#[derive(Debug)] struct Point { x: i32, y: i32, } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:#?}", origin);
This outputs:
The origin is: Point {
x: 0,
y: 0
}
Required Methods
Implementors
impl<T> Debug for Wrapping<T> where T: Debugimpl Debug for FpCategoryimpl Debug for ParseIntErrorimpl Debug for IntErrorKindimpl<T> Debug for NonZero<T> where T: Zeroable + Debugimpl<Ret> Debug for fn() -> Retimpl<Ret> Debug for extern "C" fn() -> Retimpl<Ret> Debug for unsafe fn() -> Retimpl<Ret> Debug for unsafe extern "C" fn() -> Retimpl<Ret, A> Debug for fn(A) -> Retimpl<Ret, A> Debug for extern "C" fn(A) -> Retimpl<Ret, A> Debug for unsafe fn(A) -> Retimpl<Ret, A> Debug for unsafe extern "C" fn(A) -> Retimpl<Ret, A, B> Debug for fn(A, B) -> Retimpl<Ret, A, B> Debug for extern "C" fn(A, B) -> Retimpl<Ret, A, B> Debug for unsafe fn(A, B) -> Retimpl<Ret, A, B> Debug for unsafe extern "C" fn(A, B) -> Retimpl<Ret, A, B, C> Debug for fn(A, B, C) -> Retimpl<Ret, A, B, C> Debug for extern "C" fn(A, B, C) -> Retimpl<Ret, A, B, C> Debug for unsafe fn(A, B, C) -> Retimpl<Ret, A, B, C> Debug for unsafe extern "C" fn(A, B, C) -> Retimpl<Ret, A, B, C, D> Debug for fn(A, B, C, D) -> Retimpl<Ret, A, B, C, D> Debug for extern "C" fn(A, B, C, D) -> Retimpl<Ret, A, B, C, D> Debug for unsafe fn(A, B, C, D) -> Retimpl<Ret, A, B, C, D> Debug for unsafe extern "C" fn(A, B, C, D) -> Retimpl<Ret, A, B, C, D, E> Debug for fn(A, B, C, D, E) -> Retimpl<Ret, A, B, C, D, E> Debug for extern "C" fn(A, B, C, D, E) -> Retimpl<Ret, A, B, C, D, E> Debug for unsafe fn(A, B, C, D, E) -> Retimpl<Ret, A, B, C, D, E> Debug for unsafe extern "C" fn(A, B, C, D, E) -> Retimpl<Ret, A, B, C, D, E, F> Debug for fn(A, B, C, D, E, F) -> Retimpl<Ret, A, B, C, D, E, F> Debug for extern "C" fn(A, B, C, D, E, F) -> Retimpl<Ret, A, B, C, D, E, F> Debug for unsafe fn(A, B, C, D, E, F) -> Retimpl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F) -> Retimpl<Ret, A, B, C, D, E, F, G> Debug for fn(A, B, C, D, E, F, G) -> Retimpl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G) -> Retimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe fn(A, B, C, D, E, F, G) -> Retimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Retimpl<Ret, A, B, C, D, E, F, G, H> Debug for fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Retimpl Debug for RangeFullimpl<Idx> Debug for Range<Idx> where Idx: Debugimpl<Idx> Debug for RangeFrom<Idx> where Idx: Debugimpl<Idx> Debug for RangeTo<Idx> where Idx: Debugimpl Debug for Orderingimpl Debug for Any + 'staticimpl Debug for Any + 'static + Sendimpl Debug for TypeIdimpl<T> Debug for [T; 0] where T: Debugimpl<T> Debug for [T; 1] where T: Debugimpl<T> Debug for [T; 2] where T: Debugimpl<T> Debug for [T; 3] where T: Debugimpl<T> Debug for [T; 4] where T: Debugimpl<T> Debug for [T; 5] where T: Debugimpl<T> Debug for [T; 6] where T: Debugimpl<T> Debug for [T; 7] where T: Debugimpl<T> Debug for [T; 8] where T: Debugimpl<T> Debug for [T; 9] where T: Debugimpl<T> Debug for [T; 10] where T: Debugimpl<T> Debug for [T; 11] where T: Debugimpl<T> Debug for [T; 12] where T: Debugimpl<T> Debug for [T; 13] where T: Debugimpl<T> Debug for [T; 14] where T: Debugimpl<T> Debug for [T; 15] where T: Debugimpl<T> Debug for [T; 16] where T: Debugimpl<T> Debug for [T; 17] where T: Debugimpl<T> Debug for [T; 18] where T: Debugimpl<T> Debug for [T; 19] where T: Debugimpl<T> Debug for [T; 20] where T: Debugimpl<T> Debug for [T; 21] where T: Debugimpl<T> Debug for [T; 22] where T: Debugimpl<T> Debug for [T; 23] where T: Debugimpl<T> Debug for [T; 24] where T: Debugimpl<T> Debug for [T; 25] where T: Debugimpl<T> Debug for [T; 26] where T: Debugimpl<T> Debug for [T; 27] where T: Debugimpl<T> Debug for [T; 28] where T: Debugimpl<T> Debug for [T; 29] where T: Debugimpl<T> Debug for [T; 30] where T: Debugimpl<T> Debug for [T; 31] where T: Debugimpl<T> Debug for [T; 32] where T: Debugimpl Debug for AtomicUsizeimpl Debug for AtomicIsizeimpl Debug for AtomicBoolimpl<T> Debug for AtomicPtr<T>impl Debug for BorrowStateimpl<T> Debug for Option<T> where T: Debugimpl<T, E> Debug for Result<T, E> where T: Debug, E: Debugimpl Debug for SearchStepimpl<'a, 'b> Debug for StrSearcher<'a, 'b>impl Debug for StrSearcherImplimpl Debug for EmptyNeedleimpl Debug for TwoWaySearcherimpl Debug for ParseBoolErrorimpl Debug for Utf8Errorimpl Debug for RadixFmt<isize, Radix>impl Debug for isizeimpl Debug for RadixFmt<usize, Radix>impl Debug for usizeimpl Debug for RadixFmt<i8, Radix>impl Debug for i8impl Debug for RadixFmt<u8, Radix>impl Debug for u8impl Debug for RadixFmt<i16, Radix>impl Debug for i16impl Debug for RadixFmt<u16, Radix>impl Debug for u16impl Debug for RadixFmt<i32, Radix>impl Debug for i32impl Debug for RadixFmt<u32, Radix>impl Debug for u32impl Debug for RadixFmt<i64, Radix>impl Debug for i64impl Debug for RadixFmt<u64, Radix>impl Debug for u64impl Debug for Errorimpl<'a> Debug for Arguments<'a>impl<'a, T> Debug for &'a T where T: Debug + ?Sizedimpl<'a, T> Debug for &'a mut T where T: Debug + ?Sizedimpl Debug for boolimpl Debug for strimpl Debug for charimpl Debug for f32impl Debug for f64impl<T> Debug for *const Timpl<T> Debug for *mut Timpl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T7: Debug, T11: Debug, T8: Debug, T0: Debug, T3: Debug, T6: Debug, T9: Debug, T4: Debug, T10: Debug, T1: Debug, T5: Debug, T2: Debugimpl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T6: Debug, T8: Debug, T4: Debug, T11: Debug, T5: Debug, T9: Debug, T7: Debug, T1: Debug, T10: Debug, T3: Debug, T2: Debugimpl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T11: Debug, T6: Debug, T5: Debug, T3: Debug, T2: Debug, T9: Debug, T7: Debug, T8: Debug, T10: Debug, T4: Debugimpl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where T7: Debug, T9: Debug, T4: Debug, T10: Debug, T11: Debug, T3: Debug, T5: Debug, T8: Debug, T6: Debugimpl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where T8: Debug, T7: Debug, T5: Debug, T11: Debug, T6: Debug, T10: Debug, T9: Debug, T4: Debugimpl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where T8: Debug, T6: Debug, T7: Debug, T10: Debug, T5: Debug, T9: Debug, T11: Debugimpl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where T7: Debug, T6: Debug, T8: Debug, T9: Debug, T11: Debug, T10: Debugimpl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where T7: Debug, T9: Debug, T11: Debug, T8: Debug, T10: Debugimpl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where T9: Debug, T8: Debug, T11: Debug, T10: Debugimpl<T9, T10, T11> Debug for (T9, T10, T11) where T11: Debug, T10: Debug, T9: Debugimpl<T10, T11> Debug for (T10, T11) where T11: Debug, T10: Debugimpl<T11> Debug for (T11,) where T11: Debugimpl<T> Debug for [T] where T: Debugimpl Debug for ()impl<T> Debug for PhantomData<T> where T: ?Sizedimpl<T> Debug for Cell<T> where T: Copy + Debugimpl<T> Debug for RefCell<T> where T: Debug + ?Sizedimpl<'b, T> Debug for Ref<'b, T> where T: Debug + ?Sizedimpl<'b, T> Debug for RefMut<'b, T> where T: Debug + ?Sized