Trait core::fmt::Debug
[−]
[src]
pub trait Debug { fn fmt(&self, &mut Formatter) -> Result; }
Format trait for the :?
format. Useful for debugging, all types
should implement this.
Generally speaking, you should just derive
a Debug
implementation.
Examples
Deriving an implementation:
fn main() { #[derive(Debug)] struct Point { x: i32, y: i32, } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin); }#[derive(Debug)] struct Point { x: i32, y: i32, } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin);
Manually implementing:
fn main() { 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, "({}, {})", self.x, self.y) } } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin); }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, "({}, {})", self.x, self.y) } } let origin = Point { x: 0, y: 0 }; println!("The origin is: {:?}", origin);
There are a number of debug_*
methods on Formatter
to help you with manual
implementations, such as debug_struct
.
Required Methods
Implementors
impl<T: Debug> Debug for Wrapping<T> where T: Debug
impl Debug for FpCategory
impl Debug for ParseIntError
impl Debug for ParseFloatError
impl Debug for FloatErrorKind
impl<T: Debug + Zeroable> Debug for NonZero<T> where T: Debug
impl Debug for RangeFull
impl<Idx: Debug> Debug for Range<Idx>
impl<Idx: Debug> Debug for RangeFrom<Idx>
impl<Idx: Debug> Debug for RangeTo<Idx>
impl Debug for Ordering
impl Debug for Any
impl Debug for Any + Send
impl Debug for TypeId
impl<T: Debug> Debug for [T; 0]
impl<T: Debug> Debug for [T; 1]
impl<T: Debug> Debug for [T; 2]
impl<T: Debug> Debug for [T; 3]
impl<T: Debug> Debug for [T; 4]
impl<T: Debug> Debug for [T; 5]
impl<T: Debug> Debug for [T; 6]
impl<T: Debug> Debug for [T; 7]
impl<T: Debug> Debug for [T; 8]
impl<T: Debug> Debug for [T; 9]
impl<T: Debug> Debug for [T; 10]
impl<T: Debug> Debug for [T; 11]
impl<T: Debug> Debug for [T; 12]
impl<T: Debug> Debug for [T; 13]
impl<T: Debug> Debug for [T; 14]
impl<T: Debug> Debug for [T; 15]
impl<T: Debug> Debug for [T; 16]
impl<T: Debug> Debug for [T; 17]
impl<T: Debug> Debug for [T; 18]
impl<T: Debug> Debug for [T; 19]
impl<T: Debug> Debug for [T; 20]
impl<T: Debug> Debug for [T; 21]
impl<T: Debug> Debug for [T; 22]
impl<T: Debug> Debug for [T; 23]
impl<T: Debug> Debug for [T; 24]
impl<T: Debug> Debug for [T; 25]
impl<T: Debug> Debug for [T; 26]
impl<T: Debug> Debug for [T; 27]
impl<T: Debug> Debug for [T; 28]
impl<T: Debug> Debug for [T; 29]
impl<T: Debug> Debug for [T; 30]
impl<T: Debug> Debug for [T; 31]
impl<T: Debug> Debug for [T; 32]
impl Debug for BorrowState
impl<T: Debug> Debug for MinMaxResult<T> where T: Debug, T: Debug, T: Debug
impl<T: Debug> Debug for Option<T> where T: Debug
impl<T: Debug, E: Debug> Debug for Result<T, E> where T: Debug, E: Debug
impl Debug for i8x16
impl Debug for i16x8
impl Debug for i32x4
impl Debug for i64x2
impl Debug for u8x16
impl Debug for u16x8
impl Debug for u32x4
impl Debug for u64x2
impl Debug for f32x4
impl Debug for f64x2
impl Debug for SearchStep
impl Debug for ParseBoolError
impl Debug for Utf8Error
impl Debug for RadixFmt<isize, Radix>
impl Debug for isize
impl Debug for RadixFmt<usize, Radix>
impl Debug for usize
impl Debug for RadixFmt<i8, Radix>
impl Debug for i8
impl Debug for RadixFmt<u8, Radix>
impl Debug for u8
impl Debug for RadixFmt<i16, Radix>
impl Debug for i16
impl Debug for RadixFmt<u16, Radix>
impl Debug for u16
impl Debug for RadixFmt<i32, Radix>
impl Debug for i32
impl Debug for RadixFmt<u32, Radix>
impl Debug for u32
impl Debug for RadixFmt<i64, Radix>
impl Debug for i64
impl Debug for RadixFmt<u64, Radix>
impl Debug for u64
impl Debug for Error
impl<'a> Debug for Arguments<'a>
impl<'a, T: ?Sized + Debug> Debug for &'a T
impl<'a, T: ?Sized + Debug> Debug for &'a mut T
impl Debug for bool
impl Debug for str
impl Debug for char
impl Debug for f32
impl Debug for f64
impl<T> Debug for *const T
impl<T> Debug for *mut T
impl<T0: Debug, T1: Debug, T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T1: Debug, T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T4, T5, T6, T7, T8, T9, T10, T11)
impl<T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T5, T6, T7, T8, T9, T10, T11)
impl<T6: Debug, T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T6, T7, T8, T9, T10, T11)
impl<T7: Debug, T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T7, T8, T9, T10, T11)
impl<T8: Debug, T9: Debug, T10: Debug, T11: Debug> Debug for (T8, T9, T10, T11)
impl<T9: Debug, T10: Debug, T11: Debug> Debug for (T9, T10, T11)
impl<T10: Debug, T11: Debug> Debug for (T10, T11)
impl<T11: Debug> Debug for (T11,)
impl<T: Debug> Debug for [T]
impl Debug for ()
impl<T> Debug for PhantomData<T>
impl<T: Copy + Debug> Debug for Cell<T>
impl<T: ?Sized + Debug> Debug for RefCell<T>
impl<'b, T: ?Sized + Debug> Debug for Ref<'b, T>
impl<'b, T: ?Sized + Debug> Debug for RefMut<'b, T>