std::fmt::Debug - Rust
Description: API documentation for the Rust `Debug` trait in crate `std`.
Keywords: rust, rustlang, rust-lang, Debug

# Trait std::fmt::Debug 1.0.0 [−] [src]

    pub trait Debug {
        fn fmt(&self, &mut Formatter) -> Result<(), Error>;
    }

Format trait for the `?` character.

`Debug` should format the output in a programmer-facing, debugging context.

Generally speaking, you should just `derive` a `Debug` implementation.

When used with the alternate format specifier `#?`, the output is pretty-printed.

For more information on formatters, see the module-level documentation.

This trait can be used with `#[derive]` 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 `)`.

# Examples

Deriving an implementation:

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

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

    println!("The origin is: {:?}", origin);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 {
            write!(f, "Point {{ x: {}, y: {} }}", self.x, self.y)
        }
    }

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

    println!("The origin is: {:?}", origin);Run

This outputs:

    The origin is: Point { x: 0, y: 0 }

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

`Debug` implementations using either `derive` or the debug builder API on `Formatter` support pretty printing using the alternate flag: `{:#?}`.

Pretty printing with `#?`:

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

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

    println!("The origin is: {:#?}", origin);Run

This outputs:

    The origin is: Point {
        x: 0,
        y: 0
    }

## Required Methods

### `fn fmt(&self, &mut Formatter) -> Result<(), Error>`

Formats the value using the given formatter.

## Implementors

- `impl<X> Debug for rand::distributions::range::Range<X> where X: Debug`
- `impl Debug for Gamma`
- `impl Debug for ChiSquared`
- `impl Debug for FisherF`
- `impl Debug for StudentT`
- `impl Debug for StandardNormal`
- `impl Debug for Normal`
- `impl Debug for LogNormal`
- `impl Debug for Exp1`
- `impl Debug for Exp`
- `impl<Sup> Debug for RandSample<Sup>`
- `impl<T> Debug for Weighted<T> where T: Debug`
- `impl<'a, T> Debug for WeightedChoice<'a, T> where T: Debug`
- `impl Debug for IsaacRng`
- `impl Debug for Isaac64Rng`
- `impl Debug for ChaChaRng`
- `impl<R, Rsdr> Debug for ReseedingRng<R, Rsdr> where R: Debug, Rsdr: Debug`
- `impl<'a, T, R> Debug for Generator<'a, T, R> where R: Debug`
- `impl<'a, R> Debug for AsciiGenerator<'a, R> where R: Debug`
- `impl<F> Debug for Open01<F> where F: Debug`
- `impl<F> Debug for Closed01<F> where F: Debug`
- `impl Debug for ReseedWithDefault`
- `impl Debug for XorShiftRng`
- `impl<T> Debug for BinaryHeap<T> where T: Ord + Debug`
- `impl<'a, K, V> Debug for std::collections::btree_map::Entry<'a, K, V> where K: 'a + Ord + Debug,
  V: 'a + Debug`
- `impl<'a, K, V> Debug for std::collections::btree_map::VacantEntry<'a, K, V> where K: 'a + Ord + Debug, V: 'a`
- `impl<'a, K, V> Debug for std::collections::btree_map::OccupiedEntry<'a, K, V> where K: 'a + Ord + Debug,
  V: 'a + Debug`
- `impl<K, V> Debug for BTreeMap<K, V> where K: Debug, V: Debug`
- `impl<T> Debug for BTreeSet<T> where T: Debug`
- `impl<'a, B> Debug for Cow<'a, B> where B: Debug + ToOwned + ?Sized,
  B::Owned: Debug`
- `impl<E> Debug for EnumSet<E> where E: CLike + Debug`
- `impl<T> Debug for LinkedList<T> where T: Debug`
- `impl Debug for String`
- `impl Debug for ParseError`
- `impl<T> Debug for Vec<T> where T: Debug`
- `impl<T> Debug for std::vec::IntoIter<T> where T: Debug`
- `impl<T> Debug for VecDeque<T> where T: Debug`
- `impl Debug for FromUtf8Error`
- `impl Debug for FromUtf16Error`
- `impl<T> Debug for Bound<T> where T: Debug`
- `impl<T> Debug for Box<T> where T: Debug + ?Sized`
- `impl<T> Debug for std::sync::Weak<T> where T: Debug + ?Sized`
- `impl<T> Debug for Arc<T> where T: Debug + ?Sized`
- `impl<T> Debug for Rc<T> where T: Debug + ?Sized`
- `impl<T> Debug for std::rc::Weak<T> where T: Debug + ?Sized`
- `impl<T> Debug for Wrapping<T> where T: Debug`
- `impl<T> Debug for Discriminant<T>`
- `impl Debug for RangeFull`
- `impl<Idx> Debug for std::ops::Range<Idx> where Idx: Debug`
- `impl<Idx> Debug for RangeFrom<Idx> where Idx: Debug`
- `impl<Idx> Debug for RangeTo<Idx> where Idx: Debug`
- `impl<Idx> Debug for RangeInclusive<Idx> where Idx: Debug`
- `impl<Idx> Debug for RangeToInclusive<Idx> where Idx: Debug`
- `impl Debug for std::any::Any + 'static`
- `impl Debug for std::any::Any + 'static + Send`
- `impl Debug for AtomicBool`
- `impl<T> Debug for AtomicPtr<T>`
- `impl Debug for BorrowError`
- `impl Debug for BorrowMutError`
- `impl<T> Debug for std::iter::Empty<T>`
- `impl<I, F> Debug for Map<I, F> where I: Debug`
- `impl<I, P> Debug for Filter<I, P> where I: Debug`
- `impl<I, F> Debug for FilterMap<I, F> where I: Debug`
- `impl<I, P> Debug for SkipWhile<I, P> where I: Debug`
- `impl<I, P> Debug for TakeWhile<I, P> where I: Debug`
- `impl<I, St, F> Debug for Scan<I, St, F> where I: Debug, St: Debug`
- `impl<I, U, F> Debug for FlatMap<I, U, F> where I: Debug,
  U: IntoIterator,
  U::IntoIter: Debug`
- `impl<I, F> Debug for Inspect<I, F> where I: Debug`
- `impl<'a, T> Debug for std::slice::Iter<'a, T> where T: 'a + Debug`
- `impl<'a, T> Debug for std::slice::IterMut<'a, T> where T: 'a + Debug`
- `impl<'a, T, P> Debug for std::slice::Split<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, T, P> Debug for SplitMut<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, T, P> Debug for std::slice::SplitN<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, T, P> Debug for std::slice::RSplitN<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, T, P> Debug for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, T, P> Debug for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool,
  T: 'a + Debug`
- `impl<'a, F> Debug for CharPredicateSearcher<'a, F> where F: FnMut(char) -> bool`
- `impl<H> Debug for BuildHasherDefault<H>`
- `impl<'a> Debug for Arguments<'a>`
- `impl Debug for !`
- `impl Debug for bool`
- `impl Debug for str`
- `impl Debug for char`
- `impl<T> Debug for *const T where T: ?Sized`
- `impl<T> Debug for *mut T where T: ?Sized`
- `impl<T> Debug for [T] where T: Debug`
- `impl Debug for ()`
- `impl<T> Debug for PhantomData<T> where T: ?Sized`
- `impl<T> Debug for Cell<T> where T: Copy + Debug`
- `impl<T> Debug for RefCell<T> where T: Debug + ?Sized`
- `impl<'b, T> Debug for Ref<'b, T> where T: Debug + ?Sized`
- `impl<'b, T> Debug for RefMut<'b, T> where T: Debug + ?Sized`
- `impl<T> Debug for UnsafeCell<T> where T: Debug + ?Sized`
- `impl Debug for ParseFloatError`
- `impl Debug for FpCategory`
- `impl Debug for TryFromIntError`
- `impl Debug for ParseIntError`
- `impl<T> Debug for NonZero<T> where T: Zeroable + Debug`
- `impl<Ret> Debug for fn() -> Ret`
- `impl<Ret> Debug for extern fn() -> Ret`
- `impl<Ret> Debug for unsafe fn() -> Ret`
- `impl<Ret> Debug for unsafe extern fn() -> Ret`
- `impl<Ret, A> Debug for fn(A) -> Ret`
- `impl<Ret, A> Debug for extern fn(A) -> Ret`
- `impl<Ret, A> Debug for extern fn(A, ...) -> Ret`
- `impl<Ret, A> Debug for unsafe fn(A) -> Ret`
- `impl<Ret, A> Debug for unsafe extern fn(A) -> Ret`
- `impl<Ret, A> Debug for unsafe extern fn(A, ...) -> Ret`
- `impl<Ret, A, B> Debug for fn(A, B) -> Ret`
- `impl<Ret, A, B> Debug for extern fn(A, B) -> Ret`
- `impl<Ret, A, B> Debug for extern fn(A, B, ...) -> Ret`
- `impl<Ret, A, B> Debug for unsafe fn(A, B) -> Ret`
- `impl<Ret, A, B> Debug for unsafe extern fn(A, B) -> Ret`
- `impl<Ret, A, B> Debug for unsafe extern fn(A, B, ...) -> Ret`
- `impl<Ret, A, B, C> Debug for fn(A, B, C) -> Ret`
- `impl<Ret, A, B, C> Debug for extern fn(A, B, C) -> Ret`
- `impl<Ret, A, B, C> Debug for extern fn(A, B, C, ...) -> Ret`
- `impl<Ret, A, B, C> Debug for unsafe fn(A, B, C) -> Ret`
- `impl<Ret, A, B, C> Debug for unsafe extern fn(A, B, C) -> Ret`
- `impl<Ret, A, B, C> Debug for unsafe extern fn(A, B, C, ...) -> Ret`
- `impl<Ret, A, B, C, D> Debug for fn(A, B, C, D) -> Ret`
- `impl<Ret, A, B, C, D> Debug for extern fn(A, B, C, D) -> Ret`
- `impl<Ret, A, B, C, D> Debug for extern fn(A, B, C, D, ...) -> Ret`
- `impl<Ret, A, B, C, D> Debug for unsafe fn(A, B, C, D) -> Ret`
- `impl<Ret, A, B, C, D> Debug for unsafe extern fn(A, B, C, D) -> Ret`
- `impl<Ret, A, B, C, D> Debug for unsafe extern fn(A, B, C, D, ...) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for fn(A, B, C, D, E) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for extern fn(A, B, C, D, E) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for extern fn(A, B, C, D, E, ...) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for unsafe fn(A, B, C, D, E) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for unsafe extern fn(A, B, C, D, E) -> Ret`
- `impl<Ret, A, B, C, D, E> Debug for unsafe extern fn(A, B, C, D, E, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for fn(A, B, C, D, E, F) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for extern fn(A, B, C, D, E, F) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for extern fn(A, B, C, D, E, F, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for unsafe fn(A, B, C, D, E, F) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for unsafe extern fn(A, B, C, D, E, F) -> Ret`
- `impl<Ret, A, B, C, D, E, F> Debug for unsafe extern fn(A, B, C, D, E, F, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for fn(A, B, C, D, E, F, G) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for extern fn(A, B, C, D, E, F, G) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for extern fn(A, B, C, D, E, F, G, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe fn(A, B, C, D, E, F, G) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern fn(A, B, C, D, E, F, G) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern fn(A, B, C, D, E, F, G, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for fn(A, B, C, D, E, F, G, H) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for extern fn(A, B, C, D, E, F, G, H) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for extern fn(A, B, C, D, E, F, G, H, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe fn(A, B, C, D, E, F, G, H) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern fn(A, B, C, D, E, F, G, H) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern fn(A, B, C, D, E, F, G, H, ...) -> Ret`
- `impl<Ret, A, B, C, D, E, F, G, H, I> Debug for 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 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 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern 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 fn(A, B, C, D, E, F, G, H, I, ...) -> 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern 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 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern 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 fn(A, B, C, D, E, F, G, H, I, J, ...) -> 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern 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 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern 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 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, 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 extern 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 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`
- `impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern 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 fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret`
- `impl Debug for std::cmp::Ordering`
- `impl Debug for TypeId`
- `impl<T> Debug for [T; 0] where T: Debug`
- `impl<T> Debug for [T; 1] where T: Debug`
- `impl<T> Debug for [T; 2] where T: Debug`
- `impl<T> Debug for [T; 3] where T: Debug`
- `impl<T> Debug for [T; 4] where T: Debug`
- `impl<T> Debug for [T; 5] where T: Debug`
- `impl<T> Debug for [T; 6] where T: Debug`
- `impl<T> Debug for [T; 7] where T: Debug`
- `impl<T> Debug for [T; 8] where T: Debug`
- `impl<T> Debug for [T; 9] where T: Debug`
- `impl<T> Debug for [T; 10] where T: Debug`
- `impl<T> Debug for [T; 11] where T: Debug`
- `impl<T> Debug for [T; 12] where T: Debug`
- `impl<T> Debug for [T; 13] where T: Debug`
- `impl<T> Debug for [T; 14] where T: Debug`
- `impl<T> Debug for [T; 15] where T: Debug`
- `impl<T> Debug for [T; 16] where T: Debug`
- `impl<T> Debug for [T; 17] where T: Debug`
- `impl<T> Debug for [T; 18] where T: Debug`
- `impl<T> Debug for [T; 19] where T: Debug`
- `impl<T> Debug for [T; 20] where T: Debug`
- `impl<T> Debug for [T; 21] where T: Debug`
- `impl<T> Debug for [T; 22] where T: Debug`
- `impl<T> Debug for [T; 23] where T: Debug`
- `impl<T> Debug for [T; 24] where T: Debug`
- `impl<T> Debug for [T; 25] where T: Debug`
- `impl<T> Debug for [T; 26] where T: Debug`
- `impl<T> Debug for [T; 27] where T: Debug`
- `impl<T> Debug for [T; 28] where T: Debug`
- `impl<T> Debug for [T; 29] where T: Debug`
- `impl<T> Debug for [T; 30] where T: Debug`
- `impl<T> Debug for [T; 31] where T: Debug`
- `impl<T> Debug for [T; 32] where T: Debug`
- `impl Debug for std::sync::atomic::Ordering`
- `impl Debug for AtomicI8`
- `impl Debug for AtomicU8`
- `impl Debug for AtomicI16`
- `impl Debug for AtomicU16`
- `impl Debug for AtomicI32`
- `impl Debug for AtomicU32`
- `impl Debug for AtomicI64`
- `impl Debug for AtomicU64`
- `impl Debug for AtomicIsize`
- `impl Debug for AtomicUsize`
- `impl Debug for BorrowState`
- `impl Debug for CharTryFromError`
- `impl Debug for EscapeUnicode`
- `impl Debug for std::char::EscapeDefault`
- `impl Debug for EscapeDebug`
- `impl<I> Debug for DecodeUtf8<I> where I: Iterator<Item=u8> + Debug`
- `impl Debug for InvalidSequence`
- `impl<A, R> Debug for StepBy<A, R> where A: Debug, R: Debug`
- `impl<A> Debug for std::iter::Repeat<A> where A: Debug`
- `impl<T> Debug for std::iter::Once<T> where T: Debug`
- `impl<T> Debug for Rev<T> where T: Debug`
- `impl<I> Debug for Cloned<I> where I: Debug`
- `impl<I> Debug for Cycle<I> where I: Debug`
- `impl<A, B> Debug for std::iter::Chain<A, B> where A: Debug, B: Debug`
- `impl<A, B> Debug for Zip<A, B> where A: Debug, B: Debug`
- `impl<I> Debug for Enumerate<I> where I: Debug`
- `impl<I> Debug for Peekable<I> where I: Iterator + Debug, I::Item: Debug`
- `impl<I> Debug for Skip<I> where I: Debug`
- `impl<I> Debug for std::iter::Take<I> where I: Debug`
- `impl<I> Debug for Fuse<I> where I: Debug`
- `impl<T> Debug for Option<T> where T: Debug`
- `impl<'a, A> Debug for std::option::Iter<'a, A> where A: 'a + Debug`
- `impl<'a, A> Debug for std::option::IterMut<'a, A> where A: 'a + Debug`
- `impl<A> Debug for std::option::IntoIter<A> where A: Debug`
- `impl<T, E> Debug for Result<T, E> where E: Debug, T: Debug`
- `impl<'a, T> Debug for std::result::Iter<'a, T> where T: 'a + Debug`
- `impl<'a, T> Debug for std::result::IterMut<'a, T> where T: 'a + Debug`
- `impl<T> Debug for std::result::IntoIter<T> where T: Debug`
- `impl<'a, T> Debug for Windows<'a, T> where T: 'a + Debug`
- `impl<'a, T> Debug for Chunks<'a, T> where T: 'a + Debug`
- `impl<'a, T> Debug for ChunksMut<'a, T> where T: 'a + Debug`
- `impl Debug for SearchStep`
- `impl<'a> Debug for CharSearcher<'a>`
- `impl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>`
- `impl<'a, 'b> Debug for StrSearcher<'a, 'b>`
- `impl Debug for ParseBoolError`
- `impl Debug for Utf8Error`
- `impl<'a> Debug for std::str::Chars<'a>`
- `impl<'a> Debug for CharIndices<'a>`
- `impl<'a> Debug for std::str::Bytes<'a>`
- `impl<'a, P> Debug for std::str::Split<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a, P> Debug for RSplit<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a, P> Debug for SplitTerminator<'a, P> where P: Pattern<'a>,
  P::Searcher: Debug`
- `impl<'a, P> Debug for RSplitTerminator<'a, P> where P: Pattern<'a>,
  P::Searcher: Debug`
- `impl<'a, P> Debug for std::str::SplitN<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a, P> Debug for std::str::RSplitN<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a, P> Debug for MatchIndices<'a, P> where P: Pattern<'a>,
  P::Searcher: Debug`
- `impl<'a, P> Debug for RMatchIndices<'a, P> where P: Pattern<'a>,
  P::Searcher: Debug`
- `impl<'a, P> Debug for Matches<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a, P> Debug for RMatches<'a, P> where P: Pattern<'a>, P::Searcher: Debug`
- `impl<'a> Debug for std::str::Lines<'a>`
- `impl<'a> Debug for LinesAny<'a>`
- `impl Debug for SipHasher13`
- `impl Debug for SipHasher24`
- `impl Debug for SipHasher`
- `impl Debug for Alignment`
- `impl Debug for isize`
- `impl Debug for usize`
- `impl Debug for i8`
- `impl Debug for u8`
- `impl Debug for i16`
- `impl Debug for u16`
- `impl Debug for i32`
- `impl Debug for u32`
- `impl Debug for i64`
- `impl Debug for u64`
- `impl Debug for i128`
- `impl Debug for u128`
- `impl Debug for std::fmt::Error`
- `impl<'a, T> Debug for &'a T where T: Debug + ?Sized`
- `impl<'a, T> Debug for &'a mut T where T: Debug + ?Sized`
- `impl Debug for f32`
- `impl Debug for f64`
- `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,
  T10: Debug,
  T11: Debug,
  T2: Debug,
  T3: Debug,
  T4: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `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,
  T10: Debug,
  T11: Debug,
  T2: Debug,
  T3: Debug,
  T4: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T2: Debug,
  T3: Debug,
  T4: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T3: Debug,
  T4: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T4: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T5: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T6: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T7: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where T10: Debug,
  T11: Debug,
  T8: Debug,
  T9: Debug`
- `impl<T9, T10, T11> Debug for (T9, T10, T11) where T10: Debug,
  T11: Debug,
  T9: Debug`
- `impl<T10, T11> Debug for (T10, T11) where T10: Debug, T11: Debug`
- `impl<T11> Debug for (T11,) where T11: Debug`
- `impl Debug for DecodeUtf16Error`
- `impl<T: 'static> Debug for LocalKey<T>`
- `impl Debug for LocalKeyState`
- `impl Debug for Builder`
- `impl Debug for ThreadId`
- `impl Debug for Thread`
- `impl<T> Debug for JoinHandle<T>`
- `impl Debug for std::ascii::EscapeDefault`
- `impl<K, V, S> Debug for HashMap<K, V, S> where K: Eq + Hash + Debug,
  V: Debug,
  S: BuildHasher`
- `impl<'a, K: Debug, V: Debug> Debug for std::collections::hash_map::Iter<'a, K, V>`
- `impl<'a, K: Debug, V: Debug> Debug for Keys<'a, K, V>`
- `impl<'a, K: Debug, V: Debug> Debug for Values<'a, K, V>`
- `impl<'a, K: 'a + Debug, V: 'a + Debug> Debug for std::collections::hash_map::Entry<'a, K, V>`
- `impl<'a, K: 'a + Debug, V: 'a + Debug> Debug for std::collections::hash_map::OccupiedEntry<'a, K, V>`
- `impl<'a, K: 'a + Debug, V: 'a> Debug for std::collections::hash_map::VacantEntry<'a, K, V>`
- `impl<'a, K, V> Debug for std::collections::hash_map::IterMut<'a, K, V> where K: Debug, V: Debug`
- `impl<K: Debug, V: Debug> Debug for std::collections::hash_map::IntoIter<K, V>`
- `impl<'a, K, V> Debug for ValuesMut<'a, K, V> where K: Debug, V: Debug`
- `impl<'a, K, V> Debug for std::collections::hash_map::Drain<'a, K, V> where K: Debug, V: Debug`
- `impl Debug for DefaultHasher`
- `impl Debug for RandomState`
- `impl<T, S> Debug for HashSet<T, S> where T: Eq + Hash + Debug, S: BuildHasher`
- `impl<'a, K: Debug> Debug for std::collections::hash_set::Iter<'a, K>`
- `impl<K: Debug> Debug for std::collections::hash_set::IntoIter<K>`
- `impl<'a, K: Debug> Debug for std::collections::hash_set::Drain<'a, K>`
- `impl<'a, T, S> Debug for Intersection<'a, T, S> where T: Debug + Eq + Hash,
  S: BuildHasher`
- `impl<'a, T, S> Debug for Difference<'a, T, S> where T: Debug + Eq + Hash,
  S: BuildHasher`
- `impl<'a, T, S> Debug for SymmetricDifference<'a, T, S> where T: Debug + Eq + Hash,
  S: BuildHasher`
- `impl<'a, T, S> Debug for Union<'a, T, S> where T: Debug + Eq + Hash,
  S: BuildHasher`
- `impl Debug for Vars`
- `impl Debug for VarsOs`
- `impl Debug for VarError`
- `impl<'a> Debug for SplitPaths<'a>`
- `impl Debug for JoinPathsError`
- `impl Debug for Args`
- `impl Debug for ArgsOs`
- `impl Debug for NulError`
- `impl Debug for FromBytesWithNulError`
- `impl Debug for IntoStringError`
- `impl Debug for CString`
- `impl Debug for CStr`
- `impl Debug for OsString`
- `impl Debug for OsStr`
- `impl Debug for ReadDir`
- `impl Debug for OpenOptions`
- `impl Debug for Permissions`
- `impl Debug for FileType`
- `impl Debug for DirBuilder`
- `impl Debug for File`
- `impl Debug for Metadata`
- `impl Debug for DirEntry`
- `impl<R> Debug for BufReader<R> where R: Debug`
- `impl<W: Debug> Debug for IntoInnerError<W>`
- `impl<W: Write> Debug for BufWriter<W> where W: Debug`
- `impl<W: Write> Debug for LineWriter<W> where W: Debug`
- `impl<T: Debug> Debug for Cursor<T>`
- `impl Debug for std::io::Error`
- `impl Debug for ErrorKind`
- `impl Debug for std::io::Empty`
- `impl Debug for std::io::Repeat`
- `impl Debug for Sink`
- `impl Debug for Stdin`
- `impl<'a> Debug for StdinLock<'a>`
- `impl Debug for Stdout`
- `impl<'a> Debug for StdoutLock<'a>`
- `impl Debug for Stderr`
- `impl<'a> Debug for StderrLock<'a>`
- `impl Debug for SeekFrom`
- `impl<T: Debug, U: Debug> Debug for std::io::Chain<T, U>`
- `impl<T: Debug> Debug for std::io::Take<T>`
- `impl<R: Debug> Debug for std::io::Bytes<R>`
- `impl<R: Debug> Debug for std::io::Chars<R>`
- `impl Debug for CharsError`
- `impl<B: Debug> Debug for std::io::Split<B>`
- `impl<B: Debug> Debug for std::io::Lines<B>`
- `impl Debug for IpAddr`
- `impl Debug for Ipv6MulticastScope`
- `impl Debug for Ipv4Addr`
- `impl Debug for Ipv6Addr`
- `impl Debug for std::net::SocketAddr`
- `impl Debug for SocketAddrV4`
- `impl Debug for SocketAddrV6`
- `impl<'a> Debug for std::net::Incoming<'a>`
- `impl Debug for TcpStream`
- `impl Debug for TcpListener`
- `impl Debug for UdpSocket`
- `impl Debug for AddrParseError`
- `impl Debug for Shutdown`
- `impl Debug for LookupHost`
- `impl Debug for c_void`
- `impl<T: Debug> Debug for AssertUnwindSafe<T>`
- `impl<'a> Debug for Prefix<'a>`
- `impl<'a> Debug for PrefixComponent<'a>`
- `impl<'a> Debug for Component<'a>`
- `impl<'a> Debug for Components<'a>`
- `impl<'a> Debug for std::path::Iter<'a>`
- `impl Debug for PathBuf`
- `impl Debug for StripPrefixError`
- `impl Debug for Path`
- `impl<'a> Debug for Display<'a>`
- `impl Debug for Child`
- `impl Debug for ChildStdin`
- `impl Debug for ChildStdout`
- `impl Debug for ChildStderr`
- `impl Debug for Command`
- `impl Debug for Output`
- `impl Debug for Stdio`
- `impl Debug for ExitStatus`
- `impl Debug for Select`
- `impl<'rx, T: Send + 'rx> Debug for Handle<'rx, T>`
- `impl<'a, T: Debug + 'a> Debug for std::sync::mpsc::Iter<'a, T>`
- `impl<'a, T: Debug + 'a> Debug for TryIter<'a, T>`
- `impl<T: Debug> Debug for std::sync::mpsc::IntoIter<T>`
- `impl Debug for RecvError`
- `impl Debug for TryRecvError`
- `impl Debug for RecvTimeoutError`
- `impl<T> Debug for Sender<T>`
- `impl<T> Debug for SyncSender<T>`
- `impl<T> Debug for Receiver<T>`
- `impl<T> Debug for SendError<T>`
- `impl<T> Debug for TrySendError<T>`
- `impl Debug for Barrier`
- `impl Debug for BarrierWaitResult`
- `impl Debug for WaitTimeoutResult`
- `impl Debug for Condvar`
- `impl<T: ?Sized + Debug> Debug for Mutex<T>`
- `impl<'a, T: ?Sized + Debug> Debug for MutexGuard<'a, T>`
- `impl Debug for OnceState`
- `impl Debug for std::sync::Once`
- `impl<T: ?Sized + Debug> Debug for RwLock<T>`
- `impl<'a, T: Debug> Debug for RwLockReadGuard<'a, T>`
- `impl<'a, T: Debug> Debug for RwLockWriteGuard<'a, T>`
- `impl Debug for Duration`
- `impl Debug for SystemTimeError`
- `impl Debug for Instant`
- `impl Debug for SystemTime`
- `impl<T> Debug for PoisonError<T>`
- `impl<T> Debug for TryLockError<T>`
- `impl Debug for std::os::unix::net::SocketAddr`
- `impl Debug for UnixStream`
- `impl Debug for UnixListener`
- `impl<'a> Debug for std::os::unix::net::Incoming<'a>`
- `impl Debug for UnixDatagram`
- `impl<'a> Debug for PanicInfo<'a>`
- `impl<'a> Debug for Location<'a>`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)