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 (libstd
, libcore
, liballoc
, 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 }");
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 }");
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
,
debut_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)
}
}
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,
}");
Required methods
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,
)");
Trait Implementations
Implementations on Foreign Types
sourceimpl<'_, K, V, S> Debug for RawOccupiedEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
impl<'_, K, V, S> Debug for RawOccupiedEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
sourceimpl<'_, K, V, S> Debug for RawEntryBuilderMut<'_, K, V, S>
impl<'_, K, V, S> Debug for RawEntryBuilderMut<'_, K, V, S>
1.16.0 · sourceimpl<'_, T> Debug for MutexGuard<'_, T> where
T: Debug + ?Sized,
impl<'_, T> Debug for MutexGuard<'_, T> where
T: Debug + ?Sized,
1.10.0 · sourceimpl Debug for UnixListener
impl Debug for UnixListener
1.8.0 · sourceimpl Debug for SystemTimeError
impl Debug for SystemTimeError
1.13.0 · sourceimpl<'_> Debug for Components<'_>
impl<'_> Debug for Components<'_>
1.16.0 · sourceimpl Debug for ChildStdin
impl Debug for ChildStdin
sourceimpl<'scope, T> Debug for ScopedJoinHandle<'scope, T>
impl<'scope, T> Debug for ScopedJoinHandle<'scope, T>
1.16.0 · sourceimpl<'_> Debug for StdoutLock<'_>
impl<'_> Debug for StdoutLock<'_>
1.57.0 · sourceimpl<'a> Debug for CommandEnvs<'a>
impl<'a> Debug for CommandEnvs<'a>
sourceimpl Debug for AncillaryError
impl Debug for AncillaryError
sourceimpl Debug for BacktraceStatus
impl Debug for BacktraceStatus
sourceimpl Debug for SocketAddrV4
impl Debug for SocketAddrV4
sourceimpl<W> Debug for LineWriter<W> where
W: Write + Debug,
impl<W> Debug for LineWriter<W> where
W: Write + Debug,
sourceimpl<T> Debug for PoisonError<T>
impl<T> Debug for PoisonError<T>
sourceimpl<'_, K, V> Debug for OccupiedError<'_, K, V> where
K: Debug,
V: Debug,
impl<'_, K, V> Debug for OccupiedError<'_, K, V> where
K: Debug,
V: Debug,
sourceimpl<'_, K, V, S> Debug for RawEntryBuilder<'_, K, V, S>
impl<'_, K, V, S> Debug for RawEntryBuilder<'_, K, V, S>
1.8.0 · sourceimpl Debug for SystemTime
impl Debug for SystemTime
1.16.0 · sourceimpl Debug for ChildStdout
impl Debug for ChildStdout
1.10.0 · sourceimpl Debug for FromBytesWithNulError
impl Debug for FromBytesWithNulError
1.54.0 · sourceimpl<K, V> Debug for IntoValues<K, V> where
V: Debug,
impl<K, V> Debug for IntoValues<K, V> where
V: Debug,
1.56.0 · sourceimpl Debug for WriterPanicked
impl Debug for WriterPanicked
1.16.0 · sourceimpl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.16.0 · sourceimpl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.16.0 · sourceimpl<'_> Debug for StderrLock<'_>
impl<'_> Debug for StderrLock<'_>
sourceimpl<T> Debug for TryLockError<T>
impl<T> Debug for TryLockError<T>
1.16.0 · sourceimpl<'_, T> Debug for RwLockWriteGuard<'_, T> where
T: Debug,
impl<'_, T> Debug for RwLockWriteGuard<'_, T> where
T: Debug,
1.16.0 · sourceimpl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.6.0 · sourceimpl Debug for DirBuilder
impl Debug for DirBuilder
1.5.0 · sourceimpl Debug for WaitTimeoutResult
impl Debug for WaitTimeoutResult
1.16.0 · sourceimpl Debug for ChildStderr
impl Debug for ChildStderr
sourceimpl Debug for ExitStatusError
impl Debug for ExitStatusError
1.12.0 · sourceimpl<'_, K, V> Debug for OccupiedEntry<'_, K, V> where
K: Debug,
V: Debug,
impl<'_, K, V> Debug for OccupiedEntry<'_, K, V> where
K: Debug,
V: Debug,
sourceimpl<T> Debug for SyncOnceCell<T> where
T: Debug,
impl<T> Debug for SyncOnceCell<T> where
T: Debug,
sourceimpl Debug for SocketAddrV6
impl Debug for SocketAddrV6
1.7.0 · sourceimpl Debug for IntoStringError
impl Debug for IntoStringError
sourceimpl<T> Debug for TrySendError<T>
impl<T> Debug for TrySendError<T>
1.16.0 · sourceimpl<'_> Debug for SplitPaths<'_>
impl<'_> Debug for SplitPaths<'_>
1.12.0 · sourceimpl Debug for RecvTimeoutError
impl Debug for RecvTimeoutError
1.10.0 · sourceimpl Debug for SocketAddr
impl Debug for SocketAddr
sourceimpl<W> Debug for IntoInnerError<W> where
W: Debug,
impl<W> Debug for IntoInnerError<W> where
W: Debug,
sourceimpl<'a> Debug for PrefixComponent<'a>
impl<'a> Debug for PrefixComponent<'a>
sourceimpl<'_, K, V, S> Debug for RawVacantEntryMut<'_, K, V, S>
impl<'_, K, V, S> Debug for RawVacantEntryMut<'_, K, V, S>
1.16.0 · sourceimpl Debug for BarrierWaitResult
impl Debug for BarrierWaitResult
sourceimpl Debug for BacktraceFrame
impl Debug for BacktraceFrame
1.58.0 · sourceimpl Debug for FromVecWithNulError
impl Debug for FromVecWithNulError
1.13.0 · sourceimpl Debug for DefaultHasher
impl Debug for DefaultHasher
sourceimpl Debug for IntoIncoming
impl Debug for IntoIncoming
sourceimpl Debug for SocketAddr
impl Debug for SocketAddr
sourceimpl<'_, K, V, S> Debug for RawEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
impl<'_, K, V, S> Debug for RawEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
sourceimpl Debug for BacktraceStyle
impl Debug for BacktraceStyle
sourceimpl Debug for Ipv6MulticastScope
impl Debug for Ipv6MulticastScope
1.7.0 · sourceimpl Debug for StripPrefixError
impl Debug for StripPrefixError
1.12.0 · sourceimpl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug,
impl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug,
1.10.0 · sourceimpl Debug for UnixStream
impl Debug for UnixStream
1.36.0 · sourceimpl<'a> Debug for IoSliceMut<'a>
impl<'a> Debug for IoSliceMut<'a>
sourceimpl<'a> Debug for SocketAncillary<'a>
impl<'a> Debug for SocketAncillary<'a>
1.8.0 · sourceimpl<T> Debug for SyncSender<T>
impl<T> Debug for SyncSender<T>
sourceimpl Debug for AddrParseError
impl Debug for AddrParseError
sourceimpl<'_> Debug for BorrowedFd<'_>
impl<'_> Debug for BorrowedFd<'_>
1.16.0 · sourceimpl<'_, T> Debug for RwLockReadGuard<'_, T> where
T: Debug,
impl<'_, T> Debug for RwLockReadGuard<'_, T> where
T: Debug,
sourceimpl Debug for JoinPathsError
impl Debug for JoinPathsError
1.16.0 · sourceimpl Debug for RandomState
impl Debug for RandomState
1.57.0 · sourceimpl<'a> Debug for CommandArgs<'a>
impl<'a> Debug for CommandArgs<'a>
1.16.0 · sourceimpl<T> Debug for JoinHandle<T>
impl<T> Debug for JoinHandle<T>
sourceimpl Debug for TryRecvError
impl Debug for TryRecvError
1.26.0 · sourceimpl Debug for AccessError
impl Debug for AccessError
1.10.0 · sourceimpl Debug for UnixDatagram
impl Debug for UnixDatagram
sourceimpl<'a> Debug for CharIndices<'a>
impl<'a> Debug for CharIndices<'a>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
sourceimpl<I, G> Debug for IntersperseWith<I, G> where
I: Iterator + Debug,
G: Debug,
<I as Iterator>::Item: Debug,
impl<I, G> Debug for IntersperseWith<I, G> where
I: Iterator + Debug,
G: Debug,
<I as Iterator>::Item: Debug,
sourceimpl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'a> Debug for Utf8LossyChunk<'a>
impl<'a> Debug for Utf8LossyChunk<'a>
1.34.0 · sourceimpl Debug for NonZeroI64
impl Debug for NonZeroI64
sourceimpl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.28.0 · sourceimpl Debug for NonZeroU16
impl Debug for NonZeroU16
1.34.0 · sourceimpl Debug for NonZeroI32
impl Debug for NonZeroI32
sourceimpl<Y, R> Debug for GeneratorState<Y, R> where
Y: Debug,
R: Debug,
impl<Y, R> Debug for GeneratorState<Y, R> where
Y: Debug,
R: Debug,
1.13.0 · sourceimpl Debug for BorrowError
impl Debug for BorrowError
1.31.0 · sourceimpl<'a, T> Debug for RChunksMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksMut<'a, T> where
T: 'a + Debug,
sourceimpl<'a, P> Debug for RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl Debug for ParseIntError
impl Debug for ParseIntError
sourceimpl Debug for EscapeDefault
impl Debug for EscapeDefault
1.34.0 · sourceimpl Debug for NonZeroIsize
impl Debug for NonZeroIsize
sourceimpl<'a, T, const N: usize> Debug for ArrayChunksMut<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayChunksMut<'a, T, N> where
T: 'a + Debug,
1.28.0 · sourceimpl Debug for NonZeroU32
impl Debug for NonZeroU32
1.41.0 · sourceimpl<T> Debug for MaybeUninit<T>
impl<T> Debug for MaybeUninit<T>
1.34.0 · sourceimpl Debug for NonZeroI128
impl Debug for NonZeroI128
1.51.0 · sourceimpl<'_, T, P> Debug for SplitInclusiveMut<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
impl<'_, T, P> Debug for SplitInclusiveMut<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
1.31.0 · sourceimpl<'a, T> Debug for ChunksExactMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for ChunksExactMut<'a, T> where
T: 'a + Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
sourceimpl<'a, P> Debug for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
sourceimpl<'f> Debug for VaListImpl<'f>
impl<'f> Debug for VaListImpl<'f>
1.34.0 · sourceimpl<'a> Debug for SplitAsciiWhitespace<'a>
impl<'a> Debug for SplitAsciiWhitespace<'a>
1.55.0 · sourceimpl<B, C> Debug for ControlFlow<B, C> where
B: Debug,
C: Debug,
impl<B, C> Debug for ControlFlow<B, C> where
B: Debug,
C: Debug,
1.34.0 · sourceimpl<T, F> Debug for Successors<T, F> where
T: Debug,
impl<T, F> Debug for Successors<T, F> where
T: Debug,
sourceimpl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.21.0 · sourceimpl<T> Debug for Discriminant<T>
impl<T> Debug for Discriminant<T>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
1.50.0 · sourceimpl Debug for LayoutError
impl Debug for LayoutError
1.20.0 · sourceimpl Debug for ParseCharError
impl Debug for ParseCharError
1.34.0 · sourceimpl Debug for CharTryFromError
impl Debug for CharTryFromError
sourceimpl Debug for FromFloatSecsError
impl Debug for FromFloatSecsError
1.27.0 · sourceimpl Debug for CpuidResult
impl Debug for CpuidResult
sourceimpl<T, const LANES: usize> Debug for Simd<T, LANES> where
T: SimdElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
impl<T, const LANES: usize> Debug for Simd<T, LANES> where
T: SimdElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
sourceimpl<'a, T, P> Debug for GroupByMut<'a, T, P> where
T: 'a + Debug,
impl<'a, T, P> Debug for GroupByMut<'a, T, P> where
T: 'a + Debug,
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.1.0 · sourceimpl<'a> Debug for SplitWhitespace<'a>
impl<'a> Debug for SplitWhitespace<'a>
1.3.0 · sourceimpl Debug for AtomicBool
impl Debug for AtomicBool
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
sourceimpl Debug for ParseBoolError
impl Debug for ParseBoolError
sourceimpl<'a, P> Debug for SplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
1.51.0 · sourceimpl<'a, P> Debug for SplitInclusive<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitInclusive<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl Debug for EscapeUnicode
impl Debug for EscapeUnicode
sourceimpl<'a, 'b, const N: usize> Debug for CharArrayRefSearcher<'a, 'b, N>
impl<'a, 'b, const N: usize> Debug for CharArrayRefSearcher<'a, 'b, N>
sourceimpl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.9.0 · sourceimpl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
impl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
1.2.0 · sourceimpl<'a, P> Debug for Matches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for Matches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl<'a, P> Debug for RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.34.0 · sourceimpl Debug for TryFromIntError
impl Debug for TryFromIntError
1.28.0 · sourceimpl<F> Debug for RepeatWith<F> where
F: Debug,
impl<F> Debug for RepeatWith<F> where
F: Debug,
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.3.0 · sourceimpl Debug for AtomicUsize
impl Debug for AtomicUsize
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
1.28.0 · sourceimpl Debug for NonZeroUsize
impl Debug for NonZeroUsize
sourceimpl<'a, 'b> Debug for StrSearcher<'a, 'b>
impl<'a, 'b> Debug for StrSearcher<'a, 'b>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
sourceimpl<T, const LANES: usize> Debug for Mask<T, LANES> where
T: MaskElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
impl<T, const LANES: usize> Debug for Mask<T, LANES> where
T: MaskElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
1.20.0 · sourceimpl Debug for EscapeDebug
impl Debug for EscapeDebug
1.9.0 · sourceimpl<T> Debug for UnsafeCell<T> where
T: ?Sized,
impl<T> Debug for UnsafeCell<T> where
T: ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
1.17.0 · sourceimpl<'_> Debug for EncodeUtf16<'_>
impl<'_> Debug for EncodeUtf16<'_>
sourceimpl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
1.20.0 · sourceimpl<T> Debug for ManuallyDrop<T> where
T: Debug + ?Sized,
impl<T> Debug for ManuallyDrop<T> where
T: Debug + ?Sized,
1.34.0 · sourceimpl<'a> Debug for EscapeDefault<'a>
impl<'a> Debug for EscapeDefault<'a>
1.55.0 · sourceimpl Debug for IntErrorKind
impl Debug for IntErrorKind
sourceimpl Debug for ParseFloatError
impl Debug for ParseFloatError
1.13.0 · sourceimpl Debug for BorrowMutError
impl Debug for BorrowMutError
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.34.0 · sourceimpl<'a> Debug for EscapeDebug<'a>
impl<'a> Debug for EscapeDebug<'a>
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
impl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
1.34.0 · sourceimpl<'a> Debug for EscapeUnicode<'a>
impl<'a> Debug for EscapeUnicode<'a>
1.34.0 · sourceimpl Debug for NonZeroI16
impl Debug for NonZeroI16
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
1.2.0 · sourceimpl<'a, P> Debug for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.31.0 · sourceimpl<'a, T> Debug for ChunksExact<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for ChunksExact<'a, T> where
T: 'a + Debug,
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
sourceimpl<Dyn> Debug for DynMetadata<Dyn> where
Dyn: ?Sized,
impl<Dyn> Debug for DynMetadata<Dyn> where
Dyn: ?Sized,
sourceimpl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<I> Debug for Intersperse<I> where
I: Debug + Iterator,
<I as Iterator>::Item: Clone,
<I as Iterator>::Item: Debug,
impl<I> Debug for Intersperse<I> where
I: Debug + Iterator,
<I as Iterator>::Item: Clone,
<I as Iterator>::Item: Debug,
1.34.0 · sourceimpl Debug for TryFromSliceError
impl Debug for TryFromSliceError
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.28.0 · sourceimpl Debug for NonZeroU64
impl Debug for NonZeroU64
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
sourceimpl<'a, P> Debug for SplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.28.0 · sourceimpl Debug for NonZeroU128
impl Debug for NonZeroU128
1.29.0 · sourceimpl<I, U> Debug for Flatten<I> where
I: Debug + Iterator,
U: Debug + Iterator,
<I as Iterator>::Item: IntoIterator,
<<I as Iterator>::Item as IntoIterator>::IntoIter == U,
<<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item,
impl<I, U> Debug for Flatten<I> where
I: Debug + Iterator,
U: Debug + Iterator,
<I as Iterator>::Item: IntoIterator,
<<I as Iterator>::Item as IntoIterator>::IntoIter == U,
<<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item,
sourceimpl<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
T0: Debug,
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<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
T0: Debug,
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'a> Debug for CharSearcher<'a>
impl<'a> Debug for CharSearcher<'a>
1.9.0 · sourceimpl<H> Debug for BuildHasherDefault<H>
impl<H> Debug for BuildHasherDefault<H>
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.3.0 · sourceimpl Debug for AtomicIsize
impl Debug for AtomicIsize
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
sourceimpl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.16.0 · sourceimpl Debug for EscapeDefault
impl Debug for EscapeDefault
sourceimpl<'a, T, const N: usize> Debug for ArrayChunks<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayChunks<'a, T, N> where
T: 'a + Debug,
1.51.0 · sourceimpl<'_, T, P> Debug for SplitInclusive<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
impl<'_, T, P> Debug for SplitInclusive<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
1.5.0 · sourceimpl<'a, P> Debug for MatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for MatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
1.59.0 · sourceimpl Debug for TryFromCharError
impl Debug for TryFromCharError
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.9.0 · sourceimpl Debug for DecodeUtf16Error
impl Debug for DecodeUtf16Error
sourceimpl<'a, const N: usize> Debug for CharArraySearcher<'a, N>
impl<'a, const N: usize> Debug for CharArraySearcher<'a, N>
1.26.0 · sourceimpl<Idx> Debug for RangeInclusive<Idx> where
Idx: Debug,
impl<Idx> Debug for RangeInclusive<Idx> where
Idx: Debug,
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.4.0 · sourceimpl<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, ...) -> Ret
impl<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, ...) -> Ret
sourceimpl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>
impl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>
sourceimpl<'a, T, const N: usize> Debug for ArrayWindows<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayWindows<'a, T, N> where
T: 'a + Debug,
1.31.0 · sourceimpl<'a, T> Debug for RChunksExact<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksExact<'a, T> where
T: 'a + Debug,
1.31.0 · sourceimpl<'a, T> Debug for RChunksExactMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksExactMut<'a, T> where
T: 'a + Debug,
1.34.0 · sourceimpl Debug for Infallible
impl Debug for Infallible
sourceimpl<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
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<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
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.16.0 · sourceimpl<T> Debug for AssertUnwindSafe<T> where
T: Debug,
impl<T> Debug for AssertUnwindSafe<T> where
T: Debug,
sourceimpl<T> Debug for Saturating<T> where
T: Debug,
impl<T> Debug for Saturating<T> where
T: Debug,
1.36.0 · sourceimpl Debug for RawWakerVTable
impl Debug for RawWakerVTable
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.26.0 · sourceimpl<Idx> Debug for RangeToInclusive<Idx> where
Idx: Debug,
impl<Idx> Debug for RangeToInclusive<Idx> where
Idx: Debug,
1.60.0 · sourceimpl<'a> Debug for EscapeAscii<'a>
impl<'a> Debug for EscapeAscii<'a>
1.4.0 · sourceimpl<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) -> Ret
impl<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) -> Ret
1.5.0 · sourceimpl<'a, P> Debug for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.57.0 · sourceimpl Debug for TryReserveError
impl Debug for TryReserveError
1.17.0 · sourceimpl<'_, T> Debug for Difference<'_, T> where
T: Debug,
impl<'_, T> Debug for Difference<'_, T> where
T: Debug,
sourceimpl<T> Debug for IntoIterSorted<T> where
T: Debug,
impl<T> Debug for IntoIterSorted<T> where
T: Debug,
1.12.0 · sourceimpl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug + Ord,
impl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug + Ord,
1.54.0 · sourceimpl<K, V> Debug for IntoValues<K, V> where
V: Debug,
impl<K, V> Debug for IntoValues<K, V> where
V: Debug,
sourceimpl<'a, T, F, A> Debug for DrainFilter<'a, T, F, A> where
T: Debug,
F: Debug + FnMut(&mut T) -> bool,
A: Debug + Allocator,
impl<'a, T, F, A> Debug for DrainFilter<'a, T, F, A> where
T: Debug,
F: Debug + FnMut(&mut T) -> bool,
A: Debug + Allocator,
sourceimpl<'_, K, V, F> Debug for DrainFilter<'_, K, V, F> where
K: Debug,
V: Debug,
F: FnMut(&K, &mut V) -> bool,
impl<'_, K, V, F> Debug for DrainFilter<'_, K, V, F> where
K: Debug,
V: Debug,
F: FnMut(&K, &mut V) -> bool,
sourceimpl<T> Debug for LinkedList<T> where
T: Debug,
impl<T> Debug for LinkedList<T> where
T: Debug,
1.17.0 · sourceimpl<'_, T> Debug for Intersection<'_, T> where
T: Debug,
impl<'_, T> Debug for Intersection<'_, T> where
T: Debug,
sourceimpl<'_, B> Debug for Cow<'_, B> where
B: Debug + ToOwned + ?Sized,
<B as ToOwned>::Owned: Debug,
impl<'_, B> Debug for Cow<'_, B> where
B: Debug + ToOwned + ?Sized,
<B as ToOwned>::Owned: Debug,
sourceimpl Debug for FromUtf8Error
impl Debug for FromUtf8Error
sourceimpl<'a, T> Debug for DrainSorted<'a, T> where
T: Debug + Ord,
impl<'a, T> Debug for DrainSorted<'a, T> where
T: Debug + Ord,
sourceimpl Debug for FromUtf16Error
impl Debug for FromUtf16Error
1.4.0 · sourceimpl<T> Debug for BinaryHeap<T> where
T: Debug,
impl<T> Debug for BinaryHeap<T> where
T: Debug,
sourceimpl Debug for TryReserveErrorKind
impl Debug for TryReserveErrorKind
1.21.0 · sourceimpl<'a, I, A> Debug for Splice<'a, I, A> where
I: 'a + Debug + Iterator,
A: 'a + Debug + Allocator,
<I as Iterator>::Item: Debug,
impl<'a, I, A> Debug for Splice<'a, I, A> where
I: 'a + Debug + Iterator,
A: 'a + Debug + Allocator,
<I as Iterator>::Item: Debug,
1.17.0 · sourceimpl<'_, T> Debug for SymmetricDifference<'_, T> where
T: Debug,
impl<'_, T> Debug for SymmetricDifference<'_, T> where
T: Debug,
sourceimpl Debug for _Unwind_Reason_Code
impl Debug for _Unwind_Reason_Code
sourceimpl Debug for WasmEntryAttributes
impl Debug for WasmEntryAttributes
sourceimpl Debug for WasmFieldName
impl Debug for WasmFieldName
sourceimpl Debug for WasmMetadata
impl Debug for WasmMetadata
sourceimpl Debug for WasmValuesSet
impl Debug for WasmValuesSet
sourceimpl<T> Debug for CapacityError<T>
impl<T> Debug for CapacityError<T>
sourceimpl<const CAP: usize> Debug for ArrayString<CAP>
impl<const CAP: usize> Debug for ArrayString<CAP>
sourceimpl<E> Debug for F64Deserializer<E>
impl<E> Debug for F64Deserializer<E>
sourceimpl<E> Debug for U32Deserializer<E>
impl<E> Debug for U32Deserializer<E>
sourceimpl<'de, I, E> Debug for MapDeserializer<'de, I, E> where
I: Iterator + Debug,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::Second: Debug,
impl<'de, I, E> Debug for MapDeserializer<'de, I, E> where
I: Iterator + Debug,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::Second: Debug,
sourceimpl<E> Debug for I128Deserializer<E>
impl<E> Debug for I128Deserializer<E>
sourceimpl<E> Debug for I16Deserializer<E>
impl<E> Debug for I16Deserializer<E>
sourceimpl<A> Debug for MapAccessDeserializer<A> where
A: Debug,
impl<A> Debug for MapAccessDeserializer<A> where
A: Debug,
sourceimpl<'de, E> Debug for BorrowedBytesDeserializer<'de, E>
impl<'de, E> Debug for BorrowedBytesDeserializer<'de, E>
sourceimpl<I, E> Debug for SeqDeserializer<I, E> where
I: Debug,
impl<I, E> Debug for SeqDeserializer<I, E> where
I: Debug,
sourceimpl<E> Debug for CharDeserializer<E>
impl<E> Debug for CharDeserializer<E>
sourceimpl<E> Debug for I32Deserializer<E>
impl<E> Debug for I32Deserializer<E>
sourceimpl<E> Debug for U128Deserializer<E>
impl<E> Debug for U128Deserializer<E>
sourceimpl<E> Debug for StringDeserializer<E>
impl<E> Debug for StringDeserializer<E>
sourceimpl<'a, E> Debug for StrDeserializer<'a, E>
impl<'a, E> Debug for StrDeserializer<'a, E>
sourceimpl<'de, E> Debug for BorrowedStrDeserializer<'de, E>
impl<'de, E> Debug for BorrowedStrDeserializer<'de, E>
sourceimpl<E> Debug for F32Deserializer<E>
impl<E> Debug for F32Deserializer<E>
sourceimpl<'a, E> Debug for CowStrDeserializer<'a, E>
impl<'a, E> Debug for CowStrDeserializer<'a, E>
sourceimpl<E> Debug for IsizeDeserializer<E>
impl<E> Debug for IsizeDeserializer<E>
sourceimpl<E> Debug for BoolDeserializer<E>
impl<E> Debug for BoolDeserializer<E>
sourceimpl<'a, E> Debug for BytesDeserializer<'a, E>
impl<'a, E> Debug for BytesDeserializer<'a, E>
sourceimpl<E> Debug for I8Deserializer<E>
impl<E> Debug for I8Deserializer<E>
sourceimpl<E> Debug for U16Deserializer<E>
impl<E> Debug for U16Deserializer<E>
sourceimpl<'a> Debug for Unexpected<'a>
impl<'a> Debug for Unexpected<'a>
sourceimpl<E> Debug for U8Deserializer<E>
impl<E> Debug for U8Deserializer<E>
sourceimpl<E> Debug for U64Deserializer<E>
impl<E> Debug for U64Deserializer<E>
sourceimpl<E> Debug for UsizeDeserializer<E>
impl<E> Debug for UsizeDeserializer<E>
sourceimpl<A> Debug for SeqAccessDeserializer<A> where
A: Debug,
impl<A> Debug for SeqAccessDeserializer<A> where
A: Debug,
sourceimpl<E> Debug for UnitDeserializer<E>
impl<E> Debug for UnitDeserializer<E>
sourceimpl<E> Debug for I64Deserializer<E>
impl<E> Debug for I64Deserializer<E>
sourceimpl Debug for ParseLevelFilterError
impl Debug for ParseLevelFilterError
sourceimpl Debug for ParseLevelError
impl Debug for ParseLevelError
sourceimpl<T> Debug for DisplayValue<T> where
T: Display,
impl<T> Debug for DisplayValue<T> where
T: Display,
sourceimpl<'a> Debug for Attributes<'a>
impl<'a> Debug for Attributes<'a>
sourceimpl<T> Debug for DebugValue<T> where
T: Debug,
impl<T> Debug for DebugValue<T> where
T: Debug,
sourceimpl Debug for DefaultGuard
impl Debug for DefaultGuard
sourceimpl Debug for SetGlobalDefaultError
impl Debug for SetGlobalDefaultError
sourceimpl<T> Debug for Instrumented<T> where
T: Debug,
impl<T> Debug for Instrumented<T> where
T: Debug,
sourceimpl<T> Debug for WithDispatch<T> where
T: Debug,
impl<T> Debug for WithDispatch<T> where
T: Debug,
sourceimpl<'a> Debug for RecordBuilder<'a>
impl<'a> Debug for RecordBuilder<'a>
sourceimpl Debug for SetLoggerError
impl Debug for SetLoggerError
sourceimpl<'a> Debug for MetadataBuilder<'a>
impl<'a> Debug for MetadataBuilder<'a>
sourceimpl Debug for ParseLevelError
impl Debug for ParseLevelError
sourceimpl Debug for BoxMakeWriter
impl Debug for BoxMakeWriter
sourceimpl<'a> Debug for Extensions<'a>
impl<'a> Debug for Extensions<'a>
sourceimpl<'a, R> Debug for SpanRef<'a, R> where
R: Debug + LookupSpan<'a>,
<R as LookupSpan<'a>>::Data: Debug,
impl<'a, R> Debug for SpanRef<'a, R> where
R: Debug + LookupSpan<'a>,
<R as LookupSpan<'a>>::Data: Debug,
sourceimpl Debug for FromEnvError
impl Debug for FromEnvError
sourceimpl<M> Debug for WithMaxLevel<M> where
M: Debug,
impl<M> Debug for WithMaxLevel<M> where
M: Debug,
sourceimpl<'a, L> Debug for Scope<'a, L> where
L: Debug + LookupSpan<'a>,
impl<'a, L> Debug for Scope<'a, L> where
L: Debug + LookupSpan<'a>,
sourceimpl<D, V> Debug for VisitDelimited<D, V> where
D: Debug,
V: Debug,
impl<D, V> Debug for VisitDelimited<D, V> where
D: Debug,
V: Debug,
sourceimpl Debug for TryInitError
impl Debug for TryInitError
sourceimpl<N, E, F, W> Debug for SubscriberBuilder<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
impl<N, E, F, W> Debug for SubscriberBuilder<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
sourceimpl<'a> Debug for DefaultVisitor<'a>
impl<'a> Debug for DefaultVisitor<'a>
sourceimpl<'a> Debug for ExtensionsMut<'a>
impl<'a> Debug for ExtensionsMut<'a>
sourceimpl<A, B> Debug for EitherWriter<A, B> where
A: Debug,
B: Debug,
impl<A, B> Debug for EitherWriter<A, B> where
A: Debug,
B: Debug,
sourceimpl<M, F> Debug for WithFilter<M, F> where
M: Debug,
F: Debug,
impl<M, F> Debug for WithFilter<M, F> where
M: Debug,
F: Debug,
sourceimpl<'a, S, N> Debug for FmtContext<'a, S, N>
impl<'a, S, N> Debug for FmtContext<'a, S, N>
sourceimpl Debug for PrettyFields
impl Debug for PrettyFields
sourceimpl<'a> Debug for PrettyVisitor<'a>
impl<'a> Debug for PrettyVisitor<'a>
sourceimpl<'a, R> Debug for ScopeFromRoot<'a, R> where
R: LookupSpan<'a>,
impl<'a, R> Debug for ScopeFromRoot<'a, R> where
R: LookupSpan<'a>,
sourceimpl<'a, F> Debug for FieldFnVisitor<'a, F>
impl<'a, F> Debug for FieldFnVisitor<'a, F>
sourceimpl<'a> Debug for JsonVisitor<'a>
impl<'a> Debug for JsonVisitor<'a>
sourceimpl<E> Debug for FormattedFields<E>
impl<E> Debug for FormattedFields<E>
sourceimpl<N, E, F, W> Debug for Subscriber<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
impl<N, E, F, W> Debug for Subscriber<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
sourceimpl Debug for DefaultFields
impl Debug for DefaultFields
sourceimpl<'a, R> Debug for FromRoot<'a, R> where
R: Debug + LookupSpan<'a>,
impl<'a, R> Debug for FromRoot<'a, R> where
R: Debug + LookupSpan<'a>,
sourceimpl<M> Debug for WithMinLevel<M> where
M: Debug,
impl<M> Debug for WithMinLevel<M> where
M: Debug,
sourceimpl Debug for SetMatchesIntoIter
impl Debug for SetMatchesIntoIter
sourceimpl<'r, 't> Debug for CaptureMatches<'r, 't>
impl<'r, 't> Debug for CaptureMatches<'r, 't>
sourceimpl Debug for SetMatchesIntoIter
impl Debug for SetMatchesIntoIter
sourceimpl Debug for RegexBuilder
impl Debug for RegexBuilder
sourceimpl<'r> Debug for CaptureNames<'r>
impl<'r> Debug for CaptureNames<'r>
sourceimpl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
impl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
sourceimpl Debug for CaptureLocations
impl Debug for CaptureLocations
sourceimpl Debug for RegexBuilder
impl Debug for RegexBuilder
sourceimpl<'c, 't> Debug for SubCaptureMatches<'c, 't>
impl<'c, 't> Debug for SubCaptureMatches<'c, 't>
sourceimpl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
impl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
sourceimpl Debug for RegexSetBuilder
impl Debug for RegexSetBuilder
sourceimpl Debug for RegexSetBuilder
impl Debug for RegexSetBuilder
sourceimpl Debug for CaptureLocations
impl Debug for CaptureLocations
sourceimpl<'r> Debug for CaptureNames<'r>
impl<'r> Debug for CaptureNames<'r>
sourceimpl<'a> Debug for SetMatchesIter<'a>
impl<'a> Debug for SetMatchesIter<'a>
sourceimpl<'a> Debug for SetMatchesIter<'a>
impl<'a> Debug for SetMatchesIter<'a>
sourceimpl<'r, 't> Debug for CaptureMatches<'r, 't>
impl<'r, 't> Debug for CaptureMatches<'r, 't>
sourceimpl<'c, 't> Debug for SubCaptureMatches<'c, 't>
impl<'c, 't> Debug for SubCaptureMatches<'c, 't>
sourceimpl Debug for ClassSetBinaryOpKind
impl Debug for ClassSetBinaryOpKind
sourceimpl Debug for ClassUnicodeKind
impl Debug for ClassUnicodeKind
sourceimpl Debug for WordBoundary
impl Debug for WordBoundary
sourceimpl Debug for UnicodeWordError
impl Debug for UnicodeWordError
sourceimpl Debug for ParserBuilder
impl Debug for ParserBuilder
sourceimpl Debug for AssertionKind
impl Debug for AssertionKind
sourceimpl Debug for ClassBracketed
impl Debug for ClassBracketed
sourceimpl Debug for ClassUnicodeRange
impl Debug for ClassUnicodeRange
sourceimpl Debug for ClassUnicode
impl Debug for ClassUnicode
sourceimpl Debug for ClassBytesRange
impl Debug for ClassBytesRange
sourceimpl Debug for Utf8Sequence
impl Debug for Utf8Sequence
sourceimpl Debug for ParserBuilder
impl Debug for ParserBuilder
sourceimpl Debug for ClassSetItem
impl Debug for ClassSetItem
sourceimpl Debug for ClassPerlKind
impl Debug for ClassPerlKind
sourceimpl Debug for RepetitionKind
impl Debug for RepetitionKind
sourceimpl Debug for Utf8Sequences
impl Debug for Utf8Sequences
sourceimpl Debug for TranslatorBuilder
impl Debug for TranslatorBuilder
sourceimpl Debug for RepetitionKind
impl Debug for RepetitionKind
sourceimpl Debug for ClassSetBinaryOp
impl Debug for ClassSetBinaryOp
sourceimpl Debug for ClassSetRange
impl Debug for ClassSetRange
sourceimpl Debug for FlagsItemKind
impl Debug for FlagsItemKind
sourceimpl Debug for ClassAsciiKind
impl Debug for ClassAsciiKind
sourceimpl Debug for ClassUnicodeOpKind
impl Debug for ClassUnicodeOpKind
sourceimpl Debug for RepetitionRange
impl Debug for RepetitionRange
sourceimpl Debug for RepetitionRange
impl Debug for RepetitionRange
sourceimpl Debug for ClassSetUnion
impl Debug for ClassSetUnion
sourceimpl Debug for HexLiteralKind
impl Debug for HexLiteralKind
sourceimpl Debug for SpecialLiteralKind
impl Debug for SpecialLiteralKind
sourceimpl Debug for ClassUnicode
impl Debug for ClassUnicode
sourceimpl Debug for WithComments
impl Debug for WithComments
sourceimpl Debug for RepetitionOp
impl Debug for RepetitionOp
sourceimpl<'a> Debug for ClassUnicodeIter<'a>
impl<'a> Debug for ClassUnicodeIter<'a>
sourceimpl Debug for CaseFoldError
impl Debug for CaseFoldError
sourceimpl<'a> Debug for ClassBytesIter<'a>
impl<'a> Debug for ClassBytesIter<'a>
sourceimpl<'a, 'b, S> Debug for FindOverlappingIter<'a, 'b, S> where
S: Debug + StateID,
impl<'a, 'b, S> Debug for FindOverlappingIter<'a, 'b, S> where
S: Debug + StateID,
sourceimpl Debug for AhoCorasickBuilder
impl Debug for AhoCorasickBuilder
sourceimpl<S> Debug for AhoCorasick<S> where
S: Debug + StateID,
impl<S> Debug for AhoCorasick<S> where
S: Debug + StateID,
sourceimpl Debug for FinderBuilder
impl Debug for FinderBuilder
sourceimpl<'h, 'n> Debug for FindRevIter<'h, 'n>
impl<'h, 'n> Debug for FindRevIter<'h, 'n>
sourceimpl<T, S> Debug for PremultipliedByteClass<T, S> where
T: Debug + AsRef<[S]>,
S: Debug + StateID,
impl<T, S> Debug for PremultipliedByteClass<T, S> where
T: Debug + AsRef<[S]>,
S: Debug + StateID,
sourceimpl Debug for RegexBuilder
impl Debug for RegexBuilder
sourceimpl Debug for Style
impl Debug for Style
Styles have a special Debug
implementation that only shows the fields that
are set. Fields that haven’t been touched aren’t included in the output.
This behaviour gets bypassed when using the alternate formatting mode
format!("{:#?}")
.
use ansi_term::Colour::{Red, Blue};
assert_eq!("Style { fg(Red), on(Blue), bold, italic }",
format!("{:?}", Red.on(Blue).bold().italic()));
sourceimpl<'a, S> Debug for ANSIGenericStrings<'a, S> where
S: 'a + Debug + ToOwned + PartialEq<S> + ?Sized,
<S as ToOwned>::Owned: Debug,
impl<'a, S> Debug for ANSIGenericStrings<'a, S> where
S: 'a + Debug + ToOwned + PartialEq<S> + ?Sized,
<S as ToOwned>::Owned: Debug,
sourceimpl<'a, S> Debug for ANSIGenericString<'a, S> where
S: 'a + Debug + ToOwned + ?Sized,
<S as ToOwned>::Owned: Debug,
impl<'a, S> Debug for ANSIGenericString<'a, S> where
S: 'a + Debug + ToOwned + ?Sized,
<S as ToOwned>::Owned: Debug,
sourceimpl<'a> Debug for PrettyFormatter<'a>
impl<'a> Debug for PrettyFormatter<'a>
sourceimpl Debug for CompactFormatter
impl Debug for CompactFormatter
sourceimpl<'a> Debug for SerializeAttributes<'a>
impl<'a> Debug for SerializeAttributes<'a>
sourceimpl<'a> Debug for SerializeLevel<'a>
impl<'a> Debug for SerializeLevel<'a>
sourceimpl<'a> Debug for SerializeId<'a>
impl<'a> Debug for SerializeId<'a>
sourceimpl<'a> Debug for SerializeMetadata<'a>
impl<'a> Debug for SerializeMetadata<'a>
sourceimpl<'a> Debug for SerializeEvent<'a>
impl<'a> Debug for SerializeEvent<'a>
sourceimpl<'a> Debug for SerializeFieldSet<'a>
impl<'a> Debug for SerializeFieldSet<'a>
sourceimpl<S> Debug for SerdeMapVisitor<S> where
S: Debug + SerializeMap,
<S as SerializeMap>::Error: Debug,
impl<S> Debug for SerdeMapVisitor<S> where
S: Debug + SerializeMap,
<S as SerializeMap>::Error: Debug,
sourceimpl<'a, T> Debug for SerializeFieldMap<'a, T> where
T: Debug,
impl<'a, T> Debug for SerializeFieldMap<'a, T> where
T: Debug,
sourceimpl<S> Debug for SerdeStructVisitor<S> where
S: Debug + SerializeStruct,
<S as SerializeStruct>::Error: Debug,
impl<S> Debug for SerdeStructVisitor<S> where
S: Debug + SerializeStruct,
<S as SerializeStruct>::Error: Debug,
sourceimpl Debug for SerializeField
impl Debug for SerializeField
sourceimpl<'a> Debug for SerializeRecord<'a>
impl<'a> Debug for SerializeRecord<'a>
sourceimpl<T, C> Debug for OwnedEntry<T, C> where
T: Debug,
C: Config,
impl<T, C> Debug for OwnedEntry<T, C> where
T: Debug,
C: Config,
sourceimpl Debug for DefaultConfig
impl Debug for DefaultConfig
sourceimpl<T> Debug for ThreadLocal<T> where
T: Send + Debug,
impl<T> Debug for ThreadLocal<T> where
T: Send + Debug,
sourceimpl<T> Debug for CachedThreadLocal<T> where
T: Send + Debug,
impl<T> Debug for CachedThreadLocal<T> where
T: Send + Debug,
sourceimpl Debug for OnceNonZeroUsize
impl Debug for OnceNonZeroUsize
sourceimpl Debug for WaitTimeoutResult
impl Debug for WaitTimeoutResult
sourceimpl<'a, R, T> Debug for RwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<R, G, T> Debug for ReentrantMutex<R, G, T> where
R: RawMutex,
G: GetThreadId,
T: Debug + ?Sized,
impl<R, G, T> Debug for ReentrantMutex<R, G, T> where
R: RawMutex,
G: GetThreadId,
T: Debug + ?Sized,
sourceimpl<'a, R, T> Debug for RwLockUpgradableReadGuard<'a, R, T> where
R: 'a + RawRwLockUpgrade,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockUpgradableReadGuard<'a, R, T> where
R: 'a + RawRwLockUpgrade,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for RwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, G, T> Debug for MappedReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
impl<'a, R, G, T> Debug for MappedReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, G, T> Debug for ReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
impl<'a, R, G, T> Debug for ReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
sourceimpl Debug for UnparkResult
impl Debug for UnparkResult
sourceimpl Debug for CollectionAllocErr
impl Debug for CollectionAllocErr
sourceimpl Debug for InternalFixed
impl Debug for InternalFixed
sourceimpl Debug for IsoWeek
impl Debug for IsoWeek
The Debug
output of the ISO week w
is the same as
d.format("%G-W%V")
where d
is any NaiveDate
value in that week.
Example
use chrono::{NaiveDate, Datelike};
assert_eq!(format!("{:?}", NaiveDate::from_ymd(2015, 9, 5).iso_week()), "2015-W36");
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 3).iso_week()), "0000-W01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(9999, 12, 31).iso_week()), "9999-W52");
ISO 8601 requires an explicit sign for years before 1 BCE or after 9999 CE.
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 2).iso_week()), "-0001-W52");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(10000, 12, 31).iso_week()), "+10000-W52");
sourceimpl Debug for NaiveTime
impl Debug for NaiveTime
The Debug
output of the naive time t
is the same as
t.format("%H:%M:%S%.f")
.
The string printed can be readily parsed via the parse
method on str
.
It should be noted that, for leap seconds not on the minute boundary, it may print a representation not distinguishable from non-leap seconds. This doesn’t matter in practice, since such leap seconds never happened. (By the time of the first leap second on 1972-06-30, every time zone offset around the world has standardized to the 5-minute alignment.)
Example
use chrono::NaiveTime;
assert_eq!(format!("{:?}", NaiveTime::from_hms(23, 56, 4)), "23:56:04");
assert_eq!(format!("{:?}", NaiveTime::from_hms_milli(23, 56, 4, 12)), "23:56:04.012");
assert_eq!(format!("{:?}", NaiveTime::from_hms_micro(23, 56, 4, 1234)), "23:56:04.001234");
assert_eq!(format!("{:?}", NaiveTime::from_hms_nano(23, 56, 4, 123456)), "23:56:04.000123456");
Leap seconds may also be used.
assert_eq!(format!("{:?}", NaiveTime::from_hms_milli(6, 59, 59, 1_500)), "06:59:60.500");
sourceimpl Debug for ParseMonthError
impl Debug for ParseMonthError
sourceimpl Debug for SecondsFormat
impl Debug for SecondsFormat
sourceimpl Debug for ParseWeekdayError
impl Debug for ParseWeekdayError
sourceimpl Debug for NaiveDate
impl Debug for NaiveDate
The Debug
output of the naive date d
is the same as
d.format("%Y-%m-%d")
.
The string printed can be readily parsed via the parse
method on str
.
Example
use chrono::NaiveDate;
assert_eq!(format!("{:?}", NaiveDate::from_ymd(2015, 9, 5)), "2015-09-05");
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 1)), "0000-01-01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(9999, 12, 31)), "9999-12-31");
ISO 8601 requires an explicit sign for years before 1 BCE or after 9999 CE.
assert_eq!(format!("{:?}", NaiveDate::from_ymd( -1, 1, 1)), "-0001-01-01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(10000, 12, 31)), "+10000-12-31");
sourceimpl<'a> Debug for StrftimeItems<'a>
impl<'a> Debug for StrftimeItems<'a>
sourceimpl Debug for InternalNumeric
impl Debug for InternalNumeric
sourceimpl Debug for NaiveDateTime
impl Debug for NaiveDateTime
The Debug
output of the naive date and time dt
is the same as
dt.format("%Y-%m-%dT%H:%M:%S%.f")
.
The string printed can be readily parsed via the parse
method on str
.
It should be noted that, for leap seconds not on the minute boundary, it may print a representation not distinguishable from non-leap seconds. This doesn’t matter in practice, since such leap seconds never happened. (By the time of the first leap second on 1972-06-30, every time zone offset around the world has standardized to the 5-minute alignment.)
Example
use chrono::NaiveDate;
let dt = NaiveDate::from_ymd(2016, 11, 15).and_hms(7, 39, 24);
assert_eq!(format!("{:?}", dt), "2016-11-15T07:39:24");
Leap seconds may also be used.
let dt = NaiveDate::from_ymd(2015, 6, 30).and_hms_milli(23, 59, 59, 1_500);
assert_eq!(format!("{:?}", dt), "2015-06-30T23:59:60.500");