# Trait std::fmt::Debug

1.0.0 · source ·

    pub trait Debug {
        // Required method
        fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
    }

Expand description

`?` formatting.

`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]` if all fields implement `Debug`. When `derive`d for structs, it will use the name of the `struct`, then `{`, then a comma-separated list of each field’s name and `Debug` value, then `}`. For `enum`s, it will use the name of the variant and, if applicable, `(`, then the `Debug` values of the fields, then `)`.

## Stability

Derived `Debug` formats are not stable, and so may change with future Rust versions. Additionally, `Debug` implementations of types provided by the standard library (`std`, `core`, `alloc`, etc.) are not stable, and may also change with future Rust versions.

## Examples

Deriving an implementation:

    #[derive(Debug)]
    struct Point {
        x: i32,
        y: i32,
    }

    let origin = Point { x: 0, y: 0 };

    assert_eq!(format!("The origin is: {origin:?}"), "The origin is: Point { x: 0, y: 0 }");

Run

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 {
            f.debug_struct("Point")
             .field("x", &self.x)
             .field("y", &self.y)
             .finish()
        }
    }

    let origin = Point { x: 0, y: 0 };

    assert_eq!(format!("The origin is: {origin:?}"), "The origin is: Point { x: 0, y: 0 }");

Run

There are a number of helper methods on the `Formatter` struct to help you with manual implementations, such as `debug_struct`.

Types that do not wish to use the standard suite of debug representations provided by the `Formatter` trait (`debug_struct`, `debug_tuple`, `debug_list`, `debug_set`, `debug_map`) can do something totally custom by manually writing an arbitrary representation to the `Formatter`.

    impl fmt::Debug for Point {
        fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
            write!(f, "Point [{} {}]", self.x, self.y)
        }
    }

Run

`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 };

    assert_eq!(format!("The origin is: {origin:#?}"),
    "The origin is: Point {
        x: 0,
        y: 0,
    }");

Run

## Required Methods§

source

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter.

##### Examples

    use std::fmt;

    struct Position {
        longitude: f32,
        latitude: f32,
    }

    impl fmt::Debug for Position {
        fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
            f.debug_tuple("")
             .field(&self.longitude)
             .field(&self.latitude)
             .finish()
        }
    }

    let position = Position { longitude: 1.987, latitude: 2.983 };
    assert_eq!(format!("{position:?}"), "(1.987, 2.983)");

    assert_eq!(format!("{position:#?}"), "(
        1.987,
        2.983,
    )");

Run

## Implementors§

source§

### impl Debug for AsciiChar

1.65.0 · source§

### impl Debug for BacktraceStatus

source§

### impl Debug for std::cmp::Ordering

source§

### impl Debug for TryReserveErrorKind

1.34.0 · source§

### impl Debug for Infallible

source§

### impl Debug for VarError

1.16.0 · source§

### impl Debug for c_void

source§

### impl Debug for ErrorKind

source§

### impl Debug for SeekFrom

1.7.0 · source§

### impl Debug for IpAddr

source§

### impl Debug for Ipv6MulticastScope

source§

### impl Debug for Shutdown

source§

### impl Debug for std::net::SocketAddr

source§

### impl Debug for FpCategory

1.55.0 · source§

### impl Debug for IntErrorKind

source§

### impl Debug for AncillaryError

Available on (Android or Linux) and Unix only.
source§

### impl Debug for BacktraceStyle

source§

### impl Debug for Which

source§

### impl Debug for SearchStep

source§

### impl Debug for std::sync::atomic::Ordering

1.12.0 · source§

### impl Debug for RecvTimeoutError

source§

### impl Debug for TryRecvError

1.28.0 · source§

### impl Debug for std::fmt::Alignment

source§

### impl Debug for bool

source§

### impl Debug for char

source§

### impl Debug for f32

source§

### impl Debug for f64

source§

### impl Debug for i8

source§

### impl Debug for i16

source§

### impl Debug for i32

source§

### impl Debug for i64

source§

### impl Debug for i128

source§

### impl Debug for isize

source§

### impl Debug for !

source§

### impl Debug for str

source§

### impl Debug for u8

source§

### impl Debug for u16

source§

### impl Debug for u32

source§

### impl Debug for u64

source§

### impl Debug for u128

source§

### impl Debug for ()

source§

### impl Debug for usize

1.27.0 · source§

### impl Debug for CpuidResult

1.27.0 · source§

### impl Debug for __m128

source§

### impl Debug for __m128bh

1.27.0 · source§

### impl Debug for __m128d

1.27.0 · source§

### impl Debug for __m128i

1.27.0 · source§

### impl Debug for __m256

source§

### impl Debug for __m256bh

1.27.0 · source§

### impl Debug for __m256d

1.27.0 · source§

### impl Debug for __m256i

1.75.0 · source§

### impl Debug for __m512

source§

### impl Debug for __m512bh

1.75.0 · source§

### impl Debug for __m512d

1.75.0 · source§

### impl Debug for __m512i

source§

### impl Debug for TimSortRun

source§

### impl Debug for Fallible

source§

### impl Debug for Fatal

source§

### impl Debug for AllocError

source§

### impl Debug for Global

1.28.0 · source§

### impl Debug for Layout

1.50.0 · source§

### impl Debug for LayoutError

1.28.0 · source§

### impl Debug for System

source§

### impl Debug for TypeId

1.34.0 · source§

### impl Debug for TryFromSliceError

1.16.0 · source§

### impl Debug for std::ascii::EscapeDefault

1.65.0 · source§

### impl Debug for Backtrace

source§

### impl Debug for BacktraceFrame

1.13.0 · source§

### impl Debug for BorrowError

1.13.0 · source§

### impl Debug for BorrowMutError

1.34.0 · source§

### impl Debug for CharTryFromError

1.9.0 · source§

### impl Debug for DecodeUtf16Error

1.20.0 · source§

### impl Debug for std::char::EscapeDebug

source§

### impl Debug for std::char::EscapeDefault

source§

### impl Debug for std::char::EscapeUnicode

1.20.0 · source§

### impl Debug for ParseCharError

source§

### impl Debug for ToLowercase

source§

### impl Debug for ToUppercase

1.59.0 · source§

### impl Debug for TryFromCharError

1.13.0 · source§

### impl Debug for DefaultHasher

1.16.0 · source§

### impl Debug for RandomState

1.57.0 · source§

### impl Debug for TryReserveError

1.16.0 · source§

### impl Debug for Args

1.16.0 · source§

### impl Debug for ArgsOs

source§

### impl Debug for JoinPathsError

1.16.0 · source§

### impl Debug for SplitPaths<'_>

1.16.0 · source§

### impl Debug for Vars

1.16.0 · source§

### impl Debug for VarsOs

1.3.0 · source§

### impl Debug for CStr

source§

### impl Debug for CString

1.69.0 · source§

### impl Debug for FromBytesUntilNulError

1.64.0 · source§

### impl Debug for FromBytesWithNulError

1.64.0 · source§

### impl Debug for FromVecWithNulError

1.64.0 · source§

### impl Debug for IntoStringError

1.64.0 · source§

### impl Debug for NulError

source§

### impl Debug for OsStr

source§

### impl Debug for OsString

1.6.0 · source§

### impl Debug for DirBuilder

1.13.0 · source§

### impl Debug for DirEntry

source§

### impl Debug for File

1.75.0 · source§

### impl Debug for FileTimes

1.1.0 · source§

### impl Debug for FileType

1.16.0 · source§

### impl Debug for Metadata

source§

### impl Debug for OpenOptions

source§

### impl Debug for Permissions

source§

### impl Debug for ReadDir

source§

### impl Debug for SipHasher

source§

### impl Debug for BorrowedBuf<'_>

source§

### impl Debug for std::io::Empty

source§

### impl Debug for std::io::Error

1.16.0 · source§

### impl Debug for std::io::Repeat

source§

### impl Debug for Sink

1.16.0 · source§

### impl Debug for Stderr

1.16.0 · source§

### impl Debug for StderrLock<'_>

1.16.0 · source§

### impl Debug for Stdin

1.16.0 · source§

### impl Debug for StdinLock<'_>

1.16.0 · source§

### impl Debug for Stdout

1.16.0 · source§

### impl Debug for StdoutLock<'_>

1.56.0 · source§

### impl Debug for WriterPanicked

1.33.0 · source§

### impl Debug for PhantomPinned

source§

### impl Debug for Assume

source§

### impl Debug for AddrParseError

source§

### impl Debug for IntoIncoming

source§

### impl Debug for Ipv4Addr

source§

### impl Debug for Ipv6Addr

source§

### impl Debug for SocketAddrV4

source§

### impl Debug for SocketAddrV6

source§

### impl Debug for TcpListener

source§

### impl Debug for TcpStream

source§

### impl Debug for UdpSocket

1.34.0 · source§

### impl Debug for NonZeroI8

1.34.0 · source§

### impl Debug for NonZeroI16

1.34.0 · source§

### impl Debug for NonZeroI32

1.34.0 · source§

### impl Debug for NonZeroI64

1.34.0 · source§

### impl Debug for NonZeroI128

1.34.0 · source§

### impl Debug for NonZeroIsize

1.28.0 · source§

### impl Debug for NonZeroU8

1.28.0 · source§

### impl Debug for NonZeroU16

1.28.0 · source§

### impl Debug for NonZeroU32

1.28.0 · source§

### impl Debug for NonZeroU64

1.28.0 · source§

### impl Debug for NonZeroU128

1.28.0 · source§

### impl Debug for NonZeroUsize

source§

### impl Debug for ParseFloatError

source§

### impl Debug for ParseIntError

1.34.0 · source§

### impl Debug for TryFromIntError

source§

### impl Debug for RangeFull

1.63.0 · source§

### impl Debug for BorrowedFd<'_>

1.63.0 · source§

### impl Debug for OwnedFd

source§

### impl Debug for PidFd

Available on Linux only.
1.10.0 · source§

### impl Debug for std::os::unix::net::SocketAddr

Available on Unix only.
1.10.0 · source§

### impl Debug for UnixDatagram

Available on Unix only.
1.10.0 · source§

### impl Debug for UnixListener

Available on Unix only.
1.10.0 · source§

### impl Debug for UnixStream

Available on Unix only.
source§

### impl Debug for UCred

Available on Unix only.
1.63.0 · source§

### impl Debug for BorrowedHandle<'_>

Available on Windows only.
1.63.0 · source§

### impl Debug for BorrowedSocket<'_>

Available on Windows only.
1.63.0 · source§

### impl Debug for HandleOrInvalid

Available on Windows only.
1.63.0 · source§

### impl Debug for HandleOrNull

Available on Windows only.
1.63.0 · source§

### impl Debug for InvalidHandleError

Available on Windows only.
1.63.0 · source§

### impl Debug for NullHandleError

Available on Windows only.
1.63.0 · source§

### impl Debug for OwnedHandle

Available on Windows only.
1.63.0 · source§

### impl Debug for OwnedSocket

Available on Windows only.
1.13.0 · source§

### impl Debug for Components<'_>

source§

### impl Debug for Display<'_>

1.13.0 · source§

### impl Debug for std::path::Iter<'_>

source§

### impl Debug for Path

source§

### impl Debug for PathBuf

1.7.0 · source§

### impl Debug for StripPrefixError

1.16.0 · source§

### impl Debug for Child

1.16.0 · source§

### impl Debug for ChildStderr

1.16.0 · source§

### impl Debug for ChildStdin

1.16.0 · source§

### impl Debug for ChildStdout

source§

### impl Debug for Command

1.61.0 · source§

### impl Debug for ExitCode

source§

### impl Debug for ExitStatus

source§

### impl Debug for ExitStatusError

1.7.0 · source§

### impl Debug for Output

1.16.0 · source§

### impl Debug for Stdio

source§

### impl Debug for std::ptr::Alignment

1.38.0 · source§

### impl Debug for Chars<'_>

1.17.0 · source§

### impl Debug for EncodeUtf16<'_>

source§

### impl Debug for ParseBoolError

source§

### impl Debug for Utf8Chunks<'_>

source§

### impl Debug for Utf8Error

1.17.0 · source§

### impl Debug for std::string::Drain<'_>

source§

### impl Debug for FromUtf8Error

source§

### impl Debug for FromUtf16Error

source§

### impl Debug for String

1.3.0 · source§

### impl Debug for AtomicBool

1.34.0 · source§

### impl Debug for AtomicI8

1.34.0 · source§

### impl Debug for AtomicI16

1.34.0 · source§

### impl Debug for AtomicI32

1.34.0 · source§

### impl Debug for AtomicI64

1.3.0 · source§

### impl Debug for AtomicIsize

1.34.0 · source§

### impl Debug for AtomicU8

1.34.0 · source§

### impl Debug for AtomicU16

1.34.0 · source§

### impl Debug for AtomicU32

1.34.0 · source§

### impl Debug for AtomicU64

1.3.0 · source§

### impl Debug for AtomicUsize

source§

### impl Debug for RecvError

1.16.0 · source§

### impl Debug for Barrier

1.16.0 · source§

### impl Debug for BarrierWaitResult

1.16.0 · source§

### impl Debug for Condvar

1.16.0 · source§

### impl Debug for std::sync::Once

1.16.0 · source§

### impl Debug for OnceState

1.5.0 · source§

### impl Debug for WaitTimeoutResult

1.36.0 · source§

### impl Debug for Context<'_>

1.36.0 · source§

### impl Debug for RawWaker

1.36.0 · source§

### impl Debug for RawWakerVTable

1.36.0 · source§

### impl Debug for Waker

1.26.0 · source§

### impl Debug for AccessError

source§

### impl Debug for Builder

1.63.0 · source§

### impl Debug for Scope<'_, '_>

source§

### impl Debug for Thread

1.19.0 · source§

### impl Debug for ThreadId

1.27.0 · source§

### impl Debug for Duration

1.8.0 · source§

### impl Debug for Instant

1.8.0 · source§

### impl Debug for SystemTime

1.8.0 · source§

### impl Debug for SystemTimeError

1.66.0 · source§

### impl Debug for TryFromFloatSecsError

source§

### impl Debug for Arguments<'_>

source§

### impl Debug for std::fmt::Error

source§

### impl Debug for dyn Any

source§

### impl Debug for dyn Any + Send

1.28.0 · source§

### impl Debug for dyn Any + Send + Sync

source§

### impl<'a> Debug for Component<'a>

source§

### impl<'a> Debug for Prefix<'a>

source§

### impl<'a> Debug for Source<'a>

source§

### impl<'a> Debug for Request<'a>

source§

### impl<'a> Debug for BorrowedCursor<'a>

1.36.0 · source§

### impl<'a> Debug for IoSlice<'a>

1.36.0 · source§

### impl<'a> Debug for IoSliceMut<'a>

source§

### impl<'a> Debug for std::net::Incoming<'a>

1.10.0 · source§

### impl<'a> Debug for std::os::unix::net::Incoming<'a>

Available on Unix only.
source§

### impl<'a> Debug for SocketAncillary<'a>

Available on (Android or Linux) and Unix only.
1.10.0 · source§

### impl<'a> Debug for Location<'a>

1.10.0 · source§

### impl<'a> Debug for PanicInfo<'a>

1.28.0 · source§

### impl<'a> Debug for Ancestors<'a>

source§

### impl<'a> Debug for PrefixComponent<'a>

1.57.0 · source§

### impl<'a> Debug for CommandArgs<'a>

1.57.0 · source§

### impl<'a> Debug for CommandEnvs<'a>

1.60.0 · source§

### impl<'a> Debug for EscapeAscii<'a>

source§

### impl<'a> Debug for CharSearcher<'a>

source§

### impl<'a> Debug for std::str::Bytes<'a>

source§

### impl<'a> Debug for CharIndices<'a>

1.34.0 · source§

### impl<'a> Debug for std::str::EscapeDebug<'a>

1.34.0 · source§

### impl<'a> Debug for std::str::EscapeDefault<'a>

1.34.0 · source§

### impl<'a> Debug for std::str::EscapeUnicode<'a>

source§

### impl<'a> Debug for std::str::Lines<'a>

source§

### impl<'a> Debug for LinesAny<'a>

1.34.0 · source§

### impl<'a> Debug for SplitAsciiWhitespace<'a>

1.1.0 · source§

### impl<'a> Debug for SplitWhitespace<'a>

source§

### impl<'a> Debug for Utf8Chunk<'a>

source§

### impl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>

source§

### impl<'a, 'b> Debug for StrSearcher<'a, 'b>

source§

### impl<'a, 'b, const N: usize> Debug for CharArrayRefSearcher<'a, 'b, N>

source§

### impl<'a, 'f> Debug for VaList<'a, 'f>where 'f: 'a,

source§

### impl<'a, A> Debug for std::option::Iter<'a, A>where A: Debug + 'a,

source§

### impl<'a, A> Debug for std::option::IterMut<'a, A>where A: Debug + 'a,

source§

### impl<'a, I> Debug for ByRefSized<'a, I>where I: Debug,

1.21.0 · source§

### impl<'a, I, A> Debug for Splice<'a, I, A>where I: Debug + Iterator + 'a, A: Debug + Allocator + 'a, <I as Iterator>::Item: Debug,

source§

### impl<'a, K, F> Debug for std::collections::hash_set::ExtractIf<'a, K, F>where F: FnMut(&K) -> bool,

source§

### impl<'a, K, V, F> Debug for std::collections::hash_map::ExtractIf<'a, K, V, F>where F: FnMut(&K, &mut V) -> bool,

1.5.0 · source§

### impl<'a, P> Debug for MatchIndices<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

1.2.0 · source§

### impl<'a, P> Debug for Matches<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

1.5.0 · source§

### impl<'a, P> Debug for RMatchIndices<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

1.2.0 · source§

### impl<'a, P> Debug for RMatches<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for std::str::RSplit<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for std::str::RSplitN<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for RSplitTerminator<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for std::str::Split<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

1.51.0 · source§

### impl<'a, P> Debug for std::str::SplitInclusive<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for std::str::SplitN<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

source§

### impl<'a, P> Debug for SplitTerminator<'a, P>where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,

1.17.0 · source§

### impl<'a, T> Debug for std::collections::btree_set::Range<'a, T>where T: Debug + 'a,

source§

### impl<'a, T> Debug for std::result::Iter<'a, T>where T: Debug + 'a,

source§

### impl<'a, T> Debug for std::result::IterMut<'a, T>where T: Debug + 'a,

source§

### impl<'a, T> Debug for Chunks<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for ChunksExact<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for ChunksExactMut<'a, T>where T: Debug + 'a,

source§

### impl<'a, T> Debug for ChunksMut<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for RChunks<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for RChunksExact<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for RChunksExactMut<'a, T>where T: Debug + 'a,

1.31.0 · source§

### impl<'a, T> Debug for RChunksMut<'a, T>where T: Debug + 'a,

source§

### impl<'a, T> Debug for Windows<'a, T>where T: Debug + 'a,

1.6.0 · source§

### impl<'a, T, A> Debug for std::collections::binary_heap::Drain<'a, T, A>where T: Debug + 'a, A: Debug + Allocator,

source§

### impl<'a, T, A> Debug for DrainSorted<'a, T, A>where T: Debug + Ord, A: Debug + Allocator,

source§

### impl<'a, T, F, A, FH> Debug for std::vec::ExtractIf<'a, T, F, A, FH>where T: Debug, F: Debug + FnMut(&mut T) -> bool, A: Debug + Allocator, FH: Debug + FailureHandling,

source§

### impl<'a, T, P> Debug for GroupBy<'a, T, P>where T: 'a + Debug,

source§

### impl<'a, T, P> Debug for GroupByMut<'a, T, P>where T: 'a + Debug,

source§

### impl<'a, T, const N: usize> Debug for std::slice::ArrayChunks<'a, T, N>where T: Debug + 'a,

source§

### impl<'a, T, const N: usize> Debug for ArrayChunksMut<'a, T, N>where T: Debug + 'a,

source§

### impl<'a, T, const N: usize> Debug for ArrayWindows<'a, T, N>where T: Debug + 'a,

source§

### impl<'a, T: Debug + 'a> Debug for std::sync::mpsc::Iter<'a, T>

1.15.0 · source§

### impl<'a, T: Debug + 'a> Debug for TryIter<'a, T>

source§

### impl<'a, const N: usize> Debug for CharArraySearcher<'a, N>

source§

### impl<'f> Debug for VaListImpl<'f>

1.63.0 · source§

### impl<'scope, T> Debug for ScopedJoinHandle<'scope, T>

source§

### impl<A> Debug for std::iter::Repeat<A>where A: Debug,

source§

### impl<A> Debug for std::option::IntoIter<A>where A: Debug,

source§

### impl<A, B> Debug for std::iter::Chain<A, B>where A: Debug, B: Debug,

source§

### impl<A, B> Debug for Zip<A, B>where A: Debug, B: Debug,

source§

### impl<B> Debug for Cow<'_, B>where B: Debug + ToOwned + ?Sized, <B as ToOwned>::Owned: Debug,

1.55.0 · source§

### impl<B, C> Debug for ControlFlow<B, C>where B: Debug, C: Debug,

source§

### impl<B: Debug> Debug for std::io::Lines<B>

source§

### impl<B: Debug> Debug for std::io::Split<B>

source§

### impl<Dyn> Debug for DynMetadata<Dyn>where Dyn: ?Sized,

source§

### impl<E> Debug for Report<E>where Report<E>: Display,

1.64.0 · source§

### impl<F> Debug for PollFn<F>

1.34.0 · source§

### impl<F> Debug for FromFn<F>

1.68.0 · source§

### impl<F> Debug for OnceWith<F>

1.68.0 · source§

### impl<F> Debug for RepeatWith<F>

source§

### impl<F> Debug for CharPredicateSearcher<'_, F>where F: FnMut(char) -> bool,

1.4.0 · source§

### impl<F> Debug for Fwhere F: FnPtr,

1.9.0 · source§

### impl<H> Debug for BuildHasherDefault<H>

source§

### impl<I> Debug for FromIter<I>where I: Debug,

1.9.0 · source§

### impl<I> Debug for DecodeUtf16<I>where I: Debug + Iterator<Item = u16>,

1.1.0 · source§

### impl<I> Debug for Cloned<I>where I: Debug,

1.36.0 · source§

### impl<I> Debug for Copied<I>where I: Debug,

source§

### impl<I> Debug for Cycle<I>where I: Debug,

source§

### impl<I> Debug for Enumerate<I>where I: Debug,

source§

### impl<I> Debug for Fuse<I>where I: Debug,

source§

### impl<I> Debug for Intersperse<I>where I: Debug + Iterator, <I as Iterator>::Item: Clone + Debug,

source§

### impl<I> Debug for Peekable<I>where I: Debug + Iterator, <I as Iterator>::Item: Debug,

source§

### impl<I> Debug for Skip<I>where I: Debug,

1.28.0 · source§

### impl<I> Debug for StepBy<I>where I: Debug,

source§

### impl<I> Debug for std::iter::Take<I>where I: Debug,

1.9.0 · source§

### impl<I, F> Debug for FilterMap<I, F>where I: Debug,

1.9.0 · source§

### impl<I, F> Debug for Inspect<I, F>where I: Debug,

1.9.0 · source§

### impl<I, F> Debug for Map<I, F>where I: Debug,

source§

### impl<I, F, const N: usize> Debug for MapWindows<I, F, N>where I: Iterator + Debug,

source§

### impl<I, G> Debug for IntersperseWith<I, G>where I: Iterator + Debug, <I as Iterator>::Item: Debug, G: Debug,

1.9.0 · source§

### impl<I, P> Debug for Filter<I, P>where I: Debug,

1.57.0 · source§

### impl<I, P> Debug for MapWhile<I, P>where I: Debug,

1.9.0 · source§

### impl<I, P> Debug for SkipWhile<I, P>where I: Debug,

1.9.0 · source§

### impl<I, P> Debug for TakeWhile<I, P>where I: Debug,

1.9.0 · source§

### impl<I, St, F> Debug for Scan<I, St, F>where I: Debug, St: Debug,

1.29.0 · source§

### impl<I, U> Debug for Flatten<I>where I: Debug + Iterator, <I as Iterator>::Item: IntoIterator<IntoIter = U, Item = <U as Iterator>::Item>, U: Debug + Iterator,

1.9.0 · source§

### impl<I, U, F> Debug for FlatMap<I, U, F>where I: Debug, U: IntoIterator, <U as IntoIterator>::IntoIter: Debug,

source§

### impl<I, const N: usize> Debug for std::iter::ArrayChunks<I, N>where I: Debug + Iterator, <I as Iterator>::Item: Debug,

source§

### impl<Idx> Debug for std::ops::Range<Idx>where Idx: Debug,

source§

### impl<Idx> Debug for RangeFrom<Idx>where Idx: Debug,

1.26.0 · source§

### impl<Idx> Debug for RangeInclusive<Idx>where Idx: Debug,

source§

### impl<Idx> Debug for RangeTo<Idx>where Idx: Debug,

1.26.0 · source§

### impl<Idx> Debug for RangeToInclusive<Idx>where Idx: Debug,

source§

### impl<K, V> Debug for std::collections::btree_map::Cursor<'_, K, V>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V> Debug for std::collections::btree_map::Iter<'_, K, V>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V> Debug for std::collections::btree_map::IterMut<'_, K, V>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V> Debug for std::collections::btree_map::Keys<'_, K, V>where K: Debug,

1.17.0 · source§

### impl<K, V> Debug for std::collections::btree_map::Range<'_, K, V>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V> Debug for RangeMut<'_, K, V>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V> Debug for std::collections::btree_map::Values<'_, K, V>where V: Debug,

1.10.0 · source§

### impl<K, V> Debug for std::collections::btree_map::ValuesMut<'_, K, V>where V: Debug,

1.16.0 · source§

### impl<K, V> Debug for std::collections::hash_map::Drain<'_, K, V>where K: Debug, V: Debug,

1.16.0 · source§

### impl<K, V> Debug for std::collections::hash_map::IterMut<'_, K, V>where K: Debug, V: Debug,

1.12.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::Entry<'_, K, V, A>where K: Debug + Ord, V: Debug, A: Allocator + Clone,

source§

### impl<K, V, A> Debug for std::collections::btree_map::CursorMut<'_, K, V, A>where K: Debug, V: Debug,

1.17.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::IntoIter<K, V, A>where K: Debug, V: Debug, A: Allocator + Clone,

1.54.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::IntoKeys<K, V, A>where K: Debug, A: Allocator + Clone,

1.54.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::IntoValues<K, V, A>where V: Debug, A: Allocator + Clone,

1.12.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::OccupiedEntry<'_, K, V, A>where K: Debug + Ord, V: Debug, A: Allocator + Clone,

source§

### impl<K, V, A> Debug for std::collections::btree_map::OccupiedError<'_, K, V, A>where K: Debug + Ord, V: Debug, A: Allocator + Clone,

1.12.0 · source§

### impl<K, V, A> Debug for std::collections::btree_map::VacantEntry<'_, K, V, A>where K: Debug + Ord, A: Allocator + Clone,

source§

### impl<K, V, A> Debug for BTreeMap<K, V, A>where K: Debug, V: Debug, A: Allocator + Clone,

source§

### impl<K, V, F> Debug for std::collections::btree_map::ExtractIf<'_, K, V, F>where K: Debug, V: Debug, F: FnMut(&K, &mut V) -> bool,

source§

### impl<K, V, S> Debug for HashMap<K, V, S>where K: Debug, V: Debug,

source§

### impl<K, V, S> Debug for RawEntryBuilder<'_, K, V, S>

source§

### impl<K, V, S> Debug for RawEntryBuilderMut<'_, K, V, S>

source§

### impl<K, V, S> Debug for RawVacantEntryMut<'_, K, V, S>

1.54.0 · source§

### impl<K, V: Debug> Debug for std::collections::hash_map::IntoValues<K, V>

1.16.0 · source§

### impl<K, V: Debug> Debug for std::collections::hash_map::Values<'_, K, V>

1.16.0 · source§

### impl<K, V: Debug> Debug for std::collections::hash_map::ValuesMut<'_, K, V>

1.16.0 · source§

### impl<K: Debug> Debug for std::collections::hash_set::Drain<'_, K>

1.16.0 · source§

### impl<K: Debug> Debug for std::collections::hash_set::IntoIter<K>

1.16.0 · source§

### impl<K: Debug> Debug for std::collections::hash_set::Iter<'_, K>

1.54.0 · source§

### impl<K: Debug, V> Debug for std::collections::hash_map::IntoKeys<K, V>

1.16.0 · source§

### impl<K: Debug, V> Debug for std::collections::hash_map::Keys<'_, K, V>

1.12.0 · source§

### impl<K: Debug, V> Debug for std::collections::hash_map::VacantEntry<'_, K, V>

1.12.0 · source§

### impl<K: Debug, V: Debug> Debug for std::collections::hash_map::Entry<'_, K, V>

1.16.0 · source§

### impl<K: Debug, V: Debug> Debug for std::collections::hash_map::IntoIter<K, V>

1.16.0 · source§

### impl<K: Debug, V: Debug> Debug for std::collections::hash_map::Iter<'_, K, V>

1.12.0 · source§

### impl<K: Debug, V: Debug> Debug for std::collections::hash_map::OccupiedEntry<'_, K, V>

source§

### impl<K: Debug, V: Debug> Debug for std::collections::hash_map::OccupiedError<'_, K, V>

source§

### impl<K: Debug, V: Debug, S> Debug for RawEntryMut<'_, K, V, S>

source§

### impl<K: Debug, V: Debug, S> Debug for RawOccupiedEntryMut<'_, K, V, S>

1.33.0 · source§

### impl<P> Debug for Pin<P>where P: Debug,

source§

### impl<R> Debug for BufReader<R>where R: ?Sized + Debug,

source§

### impl<R: Debug> Debug for std::io::Bytes<R>

1.17.0 · source§

### impl<T> Debug for Bound<T>where T: Debug,

source§

### impl<T> Debug for Option<T>where T: Debug,

source§

### impl<T> Debug for TryLockError<T>

source§

### impl<T> Debug for TrySendError<T>

1.36.0 · source§

### impl<T> Debug for Poll<T>where T: Debug,

source§

### impl<T> Debug for *const T where T: ?Sized,

source§

### impl<T> Debug for *mut T where T: ?Sized,

source§

### impl<T> Debug for &T where T: Debug + ?Sized,

source§

### impl<T> Debug for &mut T where T: Debug + ?Sized,

source§

### impl<T> Debug for [T]where T: Debug,

source§

### impl<T> Debug for (T₁, T₂, …, Tₙ)where T: Debug + ?Sized,

This trait is implemented for tuples up to twelve items long.

source§

### impl<T> Debug for ThinBox<T>where T: Debug + ?Sized,

source§

### impl<T> Debug for Cell<T>where T: Copy + Debug,

1.70.0 · source§

### impl<T> Debug for OnceCell<T>where T: Debug,

source§

### impl<T> Debug for Ref<'_, T>where T: Debug + ?Sized,

source§

### impl<T> Debug for RefCell<T>where T: Debug + ?Sized,

source§

### impl<T> Debug for RefMut<'_, T>where T: Debug + ?Sized,

source§

### impl<T> Debug for SyncUnsafeCell<T>where T: ?Sized,

1.9.0 · source§

### impl<T> Debug for UnsafeCell<T>where T: ?Sized,

1.19.0 · source§

### impl<T> Debug for Reverse<T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::binary_heap::Iter<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::btree_set::Iter<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::btree_set::SymmetricDifference<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::btree_set::Union<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::linked_list::Iter<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::linked_list::IterMut<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::vec_deque::Iter<'_, T>where T: Debug,

1.17.0 · source§

### impl<T> Debug for std::collections::vec_deque::IterMut<'_, T>where T: Debug,

1.48.0 · source§

### impl<T> Debug for Pending<T>

1.48.0 · source§

### impl<T> Debug for Ready<T>where T: Debug,

1.9.0 · source§

### impl<T> Debug for std::iter::Empty<T>

1.2.0 · source§

### impl<T> Debug for std::iter::Once<T>where T: Debug,

source§

### impl<T> Debug for Rev<T>where T: Debug,

source§

### impl<T> Debug for PhantomData<T>where T: ?Sized,

1.21.0 · source§

### impl<T> Debug for Discriminant<T>

1.20.0 · source§

### impl<T> Debug for ManuallyDrop<T>where T: Debug + ?Sized,

1.74.0 · source§

### impl<T> Debug for Saturating<T>where T: Debug,

source§

### impl<T> Debug for Wrapping<T>where T: Debug,

source§

### impl<T> Debug for Yeet<T>where T: Debug,

1.16.0 · source§

### impl<T> Debug for AssertUnwindSafe<T>where T: Debug,

1.25.0 · source§

### impl<T> Debug for NonNull<T>where T: ?Sized,

source§

### impl<T> Debug for UniqueRc<T>where T: Debug,

source§

### impl<T> Debug for std::result::IntoIter<T>where T: Debug,

1.9.0 · source§

### impl<T> Debug for std::slice::Iter<'_, T>where T: Debug,

1.9.0 · source§

### impl<T> Debug for std::slice::IterMut<'_, T>where T: Debug,

1.3.0 · source§

### impl<T> Debug for AtomicPtr<T>

1.8.0 · source§

### impl<T> Debug for Receiver<T>

source§

### impl<T> Debug for SendError<T>

1.8.0 · source§

### impl<T> Debug for Sender<T>

1.8.0 · source§

### impl<T> Debug for SyncSender<T>

source§

### impl<T> Debug for Exclusive<T>where T: ?Sized,

source§

### impl<T> Debug for PoisonError<T>

1.4.0 · source§

### impl<T> Debug for std::sync::Weak<T>where T: ?Sized,

1.16.0 · source§

### impl<T> Debug for JoinHandle<T>

1.41.0 · source§

### impl<T> Debug for MaybeUninit<T>

source§

### impl<T, A> Debug for Box<T, A>where T: Debug + ?Sized, A: Allocator,

1.17.0 · source§

### impl<T, A> Debug for std::collections::binary_heap::IntoIter<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for IntoIterSorted<T, A>where T: Debug, A: Debug + Allocator,

1.17.0 · source§

### impl<T, A> Debug for PeekMut<'_, T, A>where T: Ord + Debug, A: Allocator,

1.17.0 · source§

### impl<T, A> Debug for std::collections::btree_set::Difference<'_, T, A>where T: Debug, A: Allocator + Clone,

1.17.0 · source§

### impl<T, A> Debug for std::collections::btree_set::Intersection<'_, T, A>where T: Debug, A: Allocator + Clone,

source§

### impl<T, A> Debug for std::collections::btree_set::IntoIter<T, A>where T: Debug, A: Debug + Allocator + Clone,

source§

### impl<T, A> Debug for std::collections::linked_list::Cursor<'_, T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for std::collections::linked_list::CursorMut<'_, T, A>where T: Debug, A: Allocator,

1.17.0 · source§

### impl<T, A> Debug for std::collections::linked_list::IntoIter<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for BTreeSet<T, A>where T: Debug, A: Allocator + Clone,

1.4.0 · source§

### impl<T, A> Debug for BinaryHeap<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for LinkedList<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for VecDeque<T, A>where T: Debug, A: Allocator,

1.17.0 · source§

### impl<T, A> Debug for std::collections::vec_deque::Drain<'_, T, A>where T: Debug, A: Allocator,

1.17.0 · source§

### impl<T, A> Debug for std::collections::vec_deque::IntoIter<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A> Debug for Rc<T, A>where T: Debug + ?Sized, A: Allocator,

1.4.0 · source§

### impl<T, A> Debug for std::rc::Weak<T, A>where A: Allocator, T: ?Sized,

source§

### impl<T, A> Debug for Arc<T, A>where T: Debug + ?Sized, A: Allocator,

1.13.0 · source§

### impl<T, A> Debug for std::vec::IntoIter<T, A>where T: Debug, A: Allocator,

source§

### impl<T, A, FH> Debug for Vec<T, A, FH>where T: Debug, A: Allocator, FH: FailureHandling,

1.17.0 · source§

### impl<T, A, FH> Debug for std::vec::Drain<'_, T, A, FH>where T: Debug, A: Allocator, FH: FailureHandling,

source§

### impl<T, E> Debug for Result<T, E>where T: Debug, E: Debug,

source§

### impl<T, F> Debug for LazyCell<T, F>where T: Debug,

source§

### impl<T, F> Debug for std::collections::linked_list::ExtractIf<'_, T, F>where T: Debug, F: FnMut(&mut T) -> bool,

1.34.0 · source§

### impl<T, F> Debug for Successors<T, F>where T: Debug,

source§

### impl<T, F, A> Debug for std::collections::btree_set::ExtractIf<'_, T, F, A>where A: Allocator + Clone, T: Debug, F: FnMut(&T) -> bool,

1.27.0 · source§

### impl<T, P> Debug for std::slice::RSplit<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.27.0 · source§

### impl<T, P> Debug for RSplitMut<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for std::slice::RSplitN<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for RSplitNMut<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for std::slice::Split<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.51.0 · source§

### impl<T, P> Debug for std::slice::SplitInclusive<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.51.0 · source§

### impl<T, P> Debug for SplitInclusiveMut<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for SplitMut<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for std::slice::SplitN<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.9.0 · source§

### impl<T, P> Debug for SplitNMut<'_, T, P>where T: Debug, P: FnMut(&T) -> bool,

1.16.0 · source§

### impl<T, S> Debug for std::collections::hash_set::Difference<'_, T, S>where T: Debug + Eq + Hash, S: BuildHasher,

source§

### impl<T, S> Debug for HashSet<T, S>where T: Debug,

1.16.0 · source§

### impl<T, S> Debug for std::collections::hash_set::Intersection<'_, T, S>where T: Debug + Eq + Hash, S: BuildHasher,

1.16.0 · source§

### impl<T, S> Debug for std::collections::hash_set::SymmetricDifference<'_, T, S>where T: Debug + Eq + Hash, S: BuildHasher,

1.16.0 · source§

### impl<T, S> Debug for std::collections::hash_set::Union<'_, T, S>where T: Debug + Eq + Hash, S: BuildHasher,

source§

### impl<T, const LANES: usize> Debug for Mask<T, LANES>where T: MaskElement + Debug, LaneCount<LANES>: SupportedLaneCount,

source§

### impl<T, const LANES: usize> Debug for Simd<T, LANES>where LaneCount<LANES>: SupportedLaneCount, T: SimdElement + Debug,

source§

### impl<T, const N: usize> Debug for [T; N]where T: Debug,

1.40.0 · source§

### impl<T, const N: usize> Debug for std::array::IntoIter<T, N>where T: Debug,

1.16.0 · source§

### impl<T: 'static> Debug for LocalKey<T>

source§

### impl<T: Debug> Debug for std::io::Cursor<T>

source§

### impl<T: Debug> Debug for std::io::Take<T>

1.1.0 · source§

### impl<T: Debug> Debug for std::sync::mpsc::IntoIter<T>

1.70.0 · source§

### impl<T: Debug> Debug for OnceLock<T>

1.16.0 · source§

### impl<T: Debug> Debug for RwLockReadGuard<'_, T>

1.16.0 · source§

### impl<T: Debug> Debug for RwLockWriteGuard<'_, T>

source§

### impl<T: Debug, F> Debug for LazyLock<T, F>

source§

### impl<T: Debug, U: Debug> Debug for std::io::Chain<T, U>

source§

### impl<T: ?Sized + Debug> Debug for Mutex<T>

1.16.0 · source§

### impl<T: ?Sized + Debug> Debug for MutexGuard<'_, T>

source§

### impl<T: ?Sized + Debug> Debug for RwLock<T>

source§

### impl<W> Debug for BufWriter<W>where W: Debug + ?Sized + Write,

source§

### impl<W> Debug for LineWriter<W>where W: Debug + ?Sized + Write,

source§

### impl<W: Debug> Debug for IntoInnerError<W>

source§

### impl<Y, R> Debug for CoroutineState<Y, R>where Y: Debug, R: Debug,

source§

### impl<const N: usize> Debug for GetManyMutError<N>