pub trait Debug { // Required method fnfmt(&self, f: &mutFormatter<'_>) ->Result<(),Error>;}Expand description
? formatting.
Debug should format the output in a programmer-facing, debugging context.
Generally speaking, you should justderive aDebug implementation.
When used with the alternate format specifier#?, the output is pretty-printed.
For more information on formatters, seethe module-level documentation.
This trait can be used with#[derive] if all fields implementDebug. Whenderived for structs, it will use the name of thestruct, then{, then acomma-separated list of each field’s name andDebug value, then}. Forenums, it will use the name of the variant and, if applicable,(, then theDebug values of the fields, then).
§Stability
DerivedDebug formats are not stable, and so may change with future Rustversions. Additionally,Debug implementations of types provided by thestandard library (std,core,alloc, etc.) are not stable, andmay also change with future Rust versions.
§Examples
Deriving an implementation:
#[derive(Debug)]structPoint { x: i32, y: i32,}letorigin = Point { x:0, y:0};assert_eq!(format!("The origin is: {origin:?}"),"The origin is: Point { x: 0, y: 0 }",);Manually implementing:
usestd::fmt;structPoint { x: i32, y: i32,}implfmt::DebugforPoint {fnfmt(&self, f:&mutfmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Point") .field("x",&self.x) .field("y",&self.y) .finish() }}letorigin = Point { x:0, y:0};assert_eq!(format!("The origin is: {origin:?}"),"The origin is: Point { x: 0, y: 0 }",);There are a number of helper methods on theFormatter struct to help you with manualimplementations, such asdebug_struct.
Types that do not wish to use the standard suite of debug representationsprovided by theFormatter trait (debug_struct,debug_tuple,debug_list,debug_set,debug_map) can do something totally custom bymanually writing an arbitrary representation to theFormatter.
implfmt::DebugforPoint {fnfmt(&self, f:&mutfmt::Formatter<'_>) -> fmt::Result {write!(f,"Point [{} {}]",self.x,self.y) }}Debug implementations using eitherderive or the debug builder APIonFormatter support pretty-printing using the alternate flag:{:#?}.
Pretty-printing with#?:
Required Methods§
1.0.0 ·Sourcefnfmt(&self, f: &mutFormatter<'_>) ->Result<(),Error>
fnfmt(&self, f: &mutFormatter<'_>) ->Result<(),Error>
Formats the value using the given formatter.
§Errors
This function should returnErr if, and only if, the providedFormatter returnsErr.String formatting is considered an infallible operation; this function onlyreturns aResult because writing to the underlying stream might fail and it mustprovide a way to propagate the fact that an error has occurred back up the stack.
§Examples
usestd::fmt;structPosition { longitude: f32, latitude: f32,}implfmt::DebugforPosition {fnfmt(&self, f:&mutfmt::Formatter<'_>) -> fmt::Result { f.debug_tuple("") .field(&self.longitude) .field(&self.latitude) .finish() }}letposition = Position { longitude:1.987, latitude:2.983};assert_eq!(format!("{position:?}"),"(1.987, 2.983)");assert_eq!(format!("{position:#?}"),"( 1.987, 2.983,)");Implementors§
implDebug forAsciiChar
implDebug forBacktraceStatus
implDebug for std::cmp::Ordering
implDebug forTryReserveErrorKind
implDebug forInfallible
implDebug forVarError
implDebug forFromBytesWithNulError
implDebug forc_void
implDebug for std::fs::TryLockError
implDebug forAtomicOrdering
implDebug forSimdAlign
implDebug forErrorKind
implDebug forSeekFrom
implDebug forIpAddr
implDebug forIpv6MulticastScope
implDebug forShutdown
implDebug for std::net::SocketAddr
implDebug forFpCategory
implDebug forIntErrorKind
implDebug forAncillaryError
implDebug forBacktraceStyle
implDebug forGetDisjointMutError
implDebug forSearchStep
implDebug for std::sync::atomic::Ordering
implDebug forRecvTimeoutError
implDebug forTryRecvError
implDebug for std::fmt::Alignment
implDebug forDebugAsHex
implDebug forSign
implDebug forbool
implDebug forchar
implDebug forf16
implDebug forf32
implDebug forf64
implDebug forf128
implDebug fori8
implDebug fori16
implDebug fori32
implDebug fori64
implDebug fori128
implDebug forisize
implDebug for!
implDebug forstr
implDebug foru8
implDebug foru16
implDebug foru32
implDebug foru64
implDebug foru128
implDebug for()
implDebug forusize
implDebug forCpuidResult
implDebug for__m128
implDebug for__m128bh
implDebug for__m128d
implDebug for__m128h
implDebug for__m128i
implDebug for__m256
implDebug for__m256bh
implDebug for__m256d
implDebug for__m256h
implDebug for__m256i
implDebug for__m512
implDebug for__m512bh
implDebug for__m512d
implDebug for__m512h
implDebug for__m512i
implDebug forbf16
implDebug forLast
implDebug forPanicMessage<'_>
implDebug forAllocError
implDebug forGlobal
implDebug forLayout
implDebug forLayoutError
implDebug forSystem
implDebug forTypeId
implDebug forTryFromSliceError
implDebug for std::ascii::EscapeDefault
implDebug forBacktrace
implDebug forBacktraceFrame
implDebug forByteStr
implDebug forByteString
implDebug forBorrowError
implDebug forBorrowMutError
implDebug forCharTryFromError
implDebug forDecodeUtf16Error
implDebug for std::char::EscapeDebug
implDebug for std::char::EscapeDefault
implDebug for std::char::EscapeUnicode
implDebug forParseCharError
implDebug forToLowercase
implDebug forToUppercase
implDebug forTryFromCharError
implDebug forUnorderedKeyError
implDebug forTryReserveError
implDebug forArgs
implDebug forArgsOs
implDebug forJoinPathsError
implDebug forSplitPaths<'_>
implDebug forVars
implDebug forVarsOs
implDebug for std::ffi::os_str::Display<'_>
implDebug forCStr
Shows the underlying bytes as a normal string, with invalid UTF-8presented as hex escape sequences.
implDebug forCString
Delegates to theCStr implementation offmt::Debug,showing invalid UTF-8 as hex escapes.
implDebug forFromBytesUntilNulError
implDebug forFromVecWithNulError
implDebug forIntoStringError
implDebug forNulError
implDebug forOsStr
implDebug forOsString
implDebug forDirBuilder
implDebug forDirEntry
implDebug forFile
implDebug forFileTimes
implDebug forFileType
implDebug forMetadata
implDebug forOpenOptions
implDebug forPermissions
implDebug forReadDir
implDebug forDefaultHasher
implDebug forRandomState
implDebug forSipHasher
implDebug forBorrowedBuf<'_>
implDebug for std::io::Empty
implDebug for std::io::Error
implDebug forPipeReader
implDebug forPipeWriter
implDebug for std::io::Repeat
implDebug forSink
implDebug forStderr
implDebug forStderrLock<'_>
implDebug forStdin
implDebug forStdinLock<'_>
implDebug forStdout
implDebug forStdoutLock<'_>
implDebug forWriterPanicked
implDebug forPhantomContravariantLifetime<'_>
implDebug forPhantomCovariantLifetime<'_>
implDebug forPhantomInvariantLifetime<'_>
implDebug forPhantomPinned
implDebug forAssume
implDebug forAddrParseError
implDebug forIntoIncoming
implDebug forIpv4Addr
implDebug forIpv6Addr
implDebug forSocketAddrV4
implDebug forSocketAddrV6
implDebug forTcpListener
implDebug forTcpStream
implDebug forUdpSocket
implDebug forParseFloatError
implDebug forParseIntError
implDebug forTryFromIntError
implDebug forRangeFull
implDebug forBorrowedFd<'_>
target_os=trusty or WASI ortarget_os=motor only.implDebug forOwnedFd
target_os=trusty or WASI ortarget_os=motor only.implDebug forPidFd
implDebug for std::os::unix::net::SocketAddr
implDebug forUCred
implDebug forUnixDatagram
implDebug forUnixListener
implDebug forUnixStream
implDebug forEncodeWide<'_>
implDebug forBorrowedHandle<'_>
implDebug forBorrowedSocket<'_>
implDebug forHandleOrInvalid
implDebug forHandleOrNull
implDebug forInvalidHandleError
implDebug forNullHandleError
implDebug forOwnedHandle
implDebug forOwnedSocket
implDebug forLocation<'_>
implDebug forComponents<'_>
implDebug for std::path::Display<'_>
implDebug for std::path::Iter<'_>
implDebug forNormalizeError
implDebug forPath
implDebug forPathBuf
implDebug forStripPrefixError
implDebug forChild
implDebug forChildStderr
implDebug forChildStdin
implDebug forChildStdout
implDebug forCommand
implDebug forExitCode
implDebug forExitStatus
implDebug forExitStatusError
implDebug forOutput
implDebug forStdio
implDebug for std::ptr::Alignment
implDebug forDefaultRandomSource
implDebug forChars<'_>
implDebug forEncodeUtf16<'_>
implDebug forParseBoolError
implDebug forUtf8Chunks<'_>
implDebug forUtf8Error
implDebug for std::string::Drain<'_>
implDebug forFromUtf8Error
implDebug forFromUtf16Error
implDebug forIntoChars
implDebug forString
implDebug forAtomicBool
target_has_atomic_load_store=8 only.implDebug forAtomicI8
implDebug forAtomicI16
implDebug forAtomicI32
implDebug forAtomicI64
implDebug forAtomicIsize
implDebug forAtomicU8
implDebug forAtomicU16
implDebug forAtomicU32
implDebug forAtomicU64
implDebug forAtomicUsize
implDebug forRecvError
implDebug for std::sync::nonpoison::Condvar
implDebug forWouldBlock
implDebug forBarrier
implDebug forBarrierWaitResult
implDebug for std::sync::Condvar
implDebug for std::sync::Once
implDebug forOnceState
implDebug forWaitTimeoutResult
implDebug forContext<'_>
implDebug forLocalWaker
implDebug forRawWaker
implDebug forRawWakerVTable
implDebug forWaker
implDebug forAccessError
implDebug forBuilder
implDebug forScope<'_, '_>
implDebug forThread
implDebug forThreadId
implDebug forDuration
implDebug forInstant
implDebug forSystemTime
implDebug forSystemTimeError
implDebug forTryFromFloatSecsError
implDebug forArguments<'_>
implDebug for std::fmt::Error
implDebug forFormattingOptions
implDebug for dynAny
implDebug for dynAny +Send
implDebug for dynAny +Send +Sync
impl<'a>Debug forComponent<'a>
impl<'a>Debug forPrefix<'a>
impl<'a>Debug forUtf8Pattern<'a>
impl<'a>Debug forSource<'a>
impl<'a>Debug for core::ffi::c_str::Bytes<'a>
impl<'a>Debug forPanicInfo<'a>
impl<'a>Debug forRequest<'a>
impl<'a>Debug forBorrowedCursor<'a>
impl<'a>Debug forIoSlice<'a>
impl<'a>Debug forIoSliceMut<'a>
impl<'a>Debug for std::net::Incoming<'a>
impl<'a>Debug for std::os::unix::net::Incoming<'a>
impl<'a>Debug forSocketAncillary<'a>
impl<'a>Debug forProcThreadAttributeList<'a>
impl<'a>Debug forProcThreadAttributeListBuilder<'a>
impl<'a>Debug forPanicHookInfo<'a>
impl<'a>Debug forAncestors<'a>
impl<'a>Debug forPrefixComponent<'a>
impl<'a>Debug forCommandArgs<'a>
impl<'a>Debug forCommandEnvs<'a>
impl<'a>Debug forEscapeAscii<'a>
impl<'a>Debug forCharSearcher<'a>
impl<'a>Debug for std::str::Bytes<'a>
impl<'a>Debug forCharIndices<'a>
impl<'a>Debug for std::str::EscapeDebug<'a>
impl<'a>Debug for std::str::EscapeDefault<'a>
impl<'a>Debug for std::str::EscapeUnicode<'a>
impl<'a>Debug for std::str::Lines<'a>
impl<'a>Debug forLinesAny<'a>
impl<'a>Debug forSplitAsciiWhitespace<'a>
impl<'a>Debug forSplitWhitespace<'a>
impl<'a>Debug forUtf8Chunk<'a>
impl<'a>Debug forContextBuilder<'a>
impl<'a, 'b>Debug forCharSliceSearcher<'a, 'b>
impl<'a, 'b>Debug forStrSearcher<'a, 'b>
impl<'a, 'b, const N:usize>Debug forCharArrayRefSearcher<'a, 'b, N>
impl<'a, 'f>Debug forVaList<'a, 'f>where 'f: 'a,
impl<'a, A>Debug for std::option::Iter<'a, A>where A:Debug + 'a,
impl<'a, A>Debug for std::option::IterMut<'a, A>where A:Debug + 'a,
impl<'a, I>Debug forByRefSized<'a, I>where I:Debug,
impl<'a, I, A>Debug forSplice<'a, I, A>
impl<'a, P>Debug forMatchIndices<'a, P>
impl<'a, P>Debug forMatches<'a, P>
impl<'a, P>Debug forRMatchIndices<'a, P>
impl<'a, P>Debug forRMatches<'a, P>
impl<'a, P>Debug for std::str::RSplit<'a, P>
impl<'a, P>Debug for std::str::RSplitN<'a, P>
impl<'a, P>Debug forRSplitTerminator<'a, P>
impl<'a, P>Debug for std::str::Split<'a, P>
impl<'a, P>Debug for std::str::SplitInclusive<'a, P>
impl<'a, P>Debug for std::str::SplitN<'a, P>
impl<'a, P>Debug forSplitTerminator<'a, P>
impl<'a, T>Debug for std::collections::btree_set::Range<'a, T>where T:Debug + 'a,
impl<'a, T>Debug for std::result::Iter<'a, T>where T:Debug + 'a,
impl<'a, T>Debug for std::result::IterMut<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forChunks<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forChunksExact<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forChunksExactMut<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forChunksMut<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forRChunks<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forRChunksExact<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forRChunksExactMut<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forRChunksMut<'a, T>where T:Debug + 'a,
impl<'a, T>Debug forWindows<'a, T>where T:Debug + 'a,
impl<'a, T, A>Debug for std::collections::binary_heap::Drain<'a, T, A>
impl<'a, T, A>Debug forDrainSorted<'a, T, A>
impl<'a, T, P>Debug forChunkBy<'a, T, P>where T: 'a +Debug,
impl<'a, T, P>Debug forChunkByMut<'a, T, P>where T: 'a +Debug,
impl<'a, T, const N:usize>Debug forArrayWindows<'a, T, N>where T:Debug + 'a,
impl<'a, T:Debug + 'a>Debug for std::sync::mpmc::Iter<'a, T>
impl<'a, T:Debug + 'a>Debug for std::sync::mpmc::TryIter<'a, T>
impl<'a, T:Debug + 'a>Debug for std::sync::mpsc::Iter<'a, T>
impl<'a, T:Debug + 'a>Debug for std::sync::mpsc::TryIter<'a, T>
impl<'a, const N:usize>Debug forCharArraySearcher<'a, N>
impl<'f>Debug forVaListImpl<'f>
impl<'scope, T>Debug forScopedJoinHandle<'scope, T>
impl<A>Debug for std::iter::Repeat<A>where A:Debug,
impl<A>Debug forRepeatN<A>where A:Debug,
impl<A>Debug for std::option::IntoIter<A>where A:Debug,
impl<A>Debug forIterRange<A>where A:Debug,
impl<A>Debug forIterRangeFrom<A>where A:Debug,
impl<A>Debug forIterRangeInclusive<A>where A:Debug,
impl<A, B>Debug for std::iter::Chain<A, B>
impl<A, B>Debug forZip<A, B>
impl<B>Debug forCow<'_, B>
impl<B, C>Debug forControlFlow<B, C>
impl<B:Debug>Debug for std::io::Lines<B>
impl<B:Debug>Debug for std::io::Split<B>
impl<Dyn>Debug forDynMetadata<Dyn>where Dyn: ?Sized,
impl<E>Debug forReport<E>
impl<F>Debug forPollFn<F>
impl<F>Debug for std::iter::FromFn<F>
impl<F>Debug forOnceWith<F>
impl<F>Debug forRepeatWith<F>
impl<F>Debug forCharPredicateSearcher<'_, F>
impl<F>Debug for std::fmt::FromFn<F>
impl<F>Debug for Fwhere F:FnPtr,
impl<G>Debug forFromCoroutine<G>
impl<H>Debug forBuildHasherDefault<H>
impl<I>Debug forFromIter<I>where I:Debug,
impl<I>Debug forDecodeUtf16<I>
impl<I>Debug forCloned<I>where I:Debug,
impl<I>Debug forCopied<I>where I:Debug,
impl<I>Debug forCycle<I>where I:Debug,
impl<I>Debug forEnumerate<I>where I:Debug,
impl<I>Debug forFuse<I>where I:Debug,
impl<I>Debug forIntersperse<I>
impl<I>Debug forPeekable<I>
impl<I>Debug forSkip<I>where I:Debug,
impl<I>Debug forStepBy<I>where I:Debug,
impl<I>Debug for std::iter::Take<I>where I:Debug,
impl<I, F>Debug forFilterMap<I, F>where I:Debug,
impl<I, F>Debug forInspect<I, F>where I:Debug,
impl<I, F>Debug forMap<I, F>where I:Debug,
impl<I, F, const N:usize>Debug forMapWindows<I, F, N>
impl<I, G>Debug forIntersperseWith<I, G>
impl<I, P>Debug forFilter<I, P>where I:Debug,
impl<I, P>Debug forMapWhile<I, P>where I:Debug,
impl<I, P>Debug forSkipWhile<I, P>where I:Debug,
impl<I, P>Debug forTakeWhile<I, P>where I:Debug,
impl<I, St, F>Debug forScan<I, St, F>
impl<I, U>Debug forFlatten<I>
impl<I, U, F>Debug forFlatMap<I, U, F>
impl<I, const N:usize>Debug forArrayChunks<I, N>
impl<Idx>Debug forClamp<Idx>where Idx:Debug,
impl<Idx>Debug for std::ops::Range<Idx>where Idx:Debug,
impl<Idx>Debug for std::ops::RangeFrom<Idx>where Idx:Debug,
impl<Idx>Debug for std::ops::RangeInclusive<Idx>where Idx:Debug,
impl<Idx>Debug forRangeTo<Idx>where Idx:Debug,
impl<Idx>Debug for std::ops::RangeToInclusive<Idx>where Idx:Debug,
impl<Idx>Debug for std::range::Range<Idx>where Idx:Debug,
impl<Idx>Debug for std::range::RangeFrom<Idx>where Idx:Debug,
impl<Idx>Debug for std::range::RangeInclusive<Idx>where Idx:Debug,
impl<Idx>Debug for std::range::RangeToInclusive<Idx>where Idx:Debug,
impl<K>Debug for std::collections::btree_set::Cursor<'_, K>where K:Debug,
impl<K, A>Debug for std::collections::btree_set::CursorMut<'_, K, A>where K:Debug,
impl<K, A>Debug for std::collections::btree_set::CursorMutKey<'_, K, A>where K:Debug,
impl<K, F>Debug for std::collections::hash_set::ExtractIf<'_, K, F>where K:Debug,
impl<K, V>Debug for std::collections::btree_map::Cursor<'_, K, V>
impl<K, V>Debug for std::collections::btree_map::Iter<'_, K, V>
impl<K, V>Debug for std::collections::btree_map::IterMut<'_, K, V>
impl<K, V>Debug for std::collections::btree_map::Keys<'_, K, V>where K:Debug,
impl<K, V>Debug for std::collections::btree_map::Range<'_, K, V>
impl<K, V>Debug forRangeMut<'_, K, V>
impl<K, V>Debug for std::collections::btree_map::Values<'_, K, V>where V:Debug,
impl<K, V>Debug for std::collections::btree_map::ValuesMut<'_, K, V>where V:Debug,
impl<K, V>Debug for std::collections::hash_map::Drain<'_, K, V>
impl<K, V>Debug for std::collections::hash_map::IterMut<'_, K, V>
impl<K, V, A>Debug for std::collections::btree_map::Entry<'_, K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::CursorMut<'_, K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::CursorMutKey<'_, K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::IntoIter<K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::IntoKeys<K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::IntoValues<K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::OccupiedEntry<'_, K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::OccupiedError<'_, K, V, A>
impl<K, V, A>Debug for std::collections::btree_map::VacantEntry<'_, K, V, A>
impl<K, V, A>Debug forBTreeMap<K, V, A>
impl<K, V, F>Debug for std::collections::hash_map::ExtractIf<'_, K, V, F>
impl<K, V, R, F, A>Debug for std::collections::btree_map::ExtractIf<'_, K, V, R, F, A>
impl<K, V, S>Debug forHashMap<K, V, S>
impl<K, V:Debug>Debug for std::collections::hash_map::IntoValues<K, V>
impl<K, V:Debug>Debug for std::collections::hash_map::Values<'_, K, V>
impl<K, V:Debug>Debug for std::collections::hash_map::ValuesMut<'_, K, V>
impl<K:Debug>Debug for std::collections::hash_set::Drain<'_, K>
impl<K:Debug>Debug for std::collections::hash_set::IntoIter<K>
impl<K:Debug>Debug for std::collections::hash_set::Iter<'_, K>
impl<K:Debug, V>Debug for std::collections::hash_map::IntoKeys<K, V>
impl<K:Debug, V>Debug for std::collections::hash_map::Keys<'_, K, V>
impl<K:Debug, V>Debug for std::collections::hash_map::VacantEntry<'_, K, V>
impl<K:Debug, V:Debug>Debug for std::collections::hash_map::Entry<'_, K, V>
impl<K:Debug, V:Debug>Debug for std::collections::hash_map::IntoIter<K, V>
impl<K:Debug, V:Debug>Debug for std::collections::hash_map::Iter<'_, K, V>
impl<K:Debug, V:Debug>Debug for std::collections::hash_map::OccupiedEntry<'_, K, V>
impl<K:Debug, V:Debug>Debug for std::collections::hash_map::OccupiedError<'_, K, V>
impl<Ptr>Debug forPin<Ptr>where Ptr:Debug,
impl<R>Debug forBufReader<R>
impl<R:Debug>Debug for std::io::Bytes<R>
impl<T>Debug forBound<T>where T:Debug,
impl<T>Debug forOption<T>where T:Debug,
impl<T>Debug for std::sync::TryLockError<T>
impl<T>Debug forSendTimeoutError<T>
impl<T>Debug forTrySendError<T>
impl<T>Debug forPoll<T>where T:Debug,
impl<T>Debug for*const Twhere T: ?Sized,
impl<T>Debug for*mut Twhere T: ?Sized,
impl<T>Debug for&T
impl<T>Debug for&mut T
impl<T>Debug for[T]where T:Debug,
impl<T>Debug for(T₁, T₂, …, Tₙ)where T:Debug,
This trait is implemented for tuples up to twelve items long.
impl<T>Debug forNumBuffer<T>where T:Debug +NumBufferTrait,
impl<T>Debug forThinBox<T>
impl<T>Debug forCell<T>
impl<T>Debug forOnceCell<T>where T:Debug,
impl<T>Debug forRef<'_, T>
impl<T>Debug forRefCell<T>
impl<T>Debug forRefMut<'_, T>
impl<T>Debug forSyncUnsafeCell<T>where T: ?Sized,
impl<T>Debug forUnsafeCell<T>where T: ?Sized,
impl<T>Debug forReverse<T>where T:Debug,
impl<T>Debug for std::collections::binary_heap::Iter<'_, T>where T:Debug,
impl<T>Debug for std::collections::btree_set::Iter<'_, T>where T:Debug,
impl<T>Debug for std::collections::btree_set::SymmetricDifference<'_, T>where T:Debug,
impl<T>Debug for std::collections::btree_set::Union<'_, T>where T:Debug,
impl<T>Debug for std::collections::linked_list::Iter<'_, T>where T:Debug,
impl<T>Debug for std::collections::linked_list::IterMut<'_, T>where T:Debug,
impl<T>Debug for std::collections::vec_deque::Iter<'_, T>where T:Debug,
impl<T>Debug for std::collections::vec_deque::IterMut<'_, T>where T:Debug,
impl<T>Debug forPending<T>
impl<T>Debug forReady<T>where T:Debug,
impl<T>Debug for std::iter::Empty<T>
impl<T>Debug for std::iter::Once<T>where T:Debug,
impl<T>Debug forRev<T>where T:Debug,
impl<T>Debug forPhantomContravariant<T>where T: ?Sized,
impl<T>Debug forPhantomCovariant<T>where T: ?Sized,
impl<T>Debug forPhantomData<T>where T: ?Sized,
impl<T>Debug forPhantomInvariant<T>where T: ?Sized,
impl<T>Debug forDiscriminant<T>
impl<T>Debug forManuallyDrop<T>
impl<T>Debug forNonZero<T>where T:ZeroablePrimitive +Debug,
impl<T>Debug forSaturating<T>where T:Debug,
impl<T>Debug forWrapping<T>where T:Debug,
impl<T>Debug forYeet<T>where T:Debug,
impl<T>Debug forAssertUnwindSafe<T>where T:Debug,
impl<T>Debug forUnsafePinned<T>where T: ?Sized,
impl<T>Debug forNonNull<T>where T: ?Sized,
impl<T>Debug for std::result::IntoIter<T>where T:Debug,
impl<T>Debug for std::slice::Iter<'_, T>where T:Debug,
impl<T>Debug for std::slice::IterMut<'_, T>where T:Debug,
impl<T>Debug forAtomicPtr<T>
target_has_atomic_load_store=ptr only.