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

    #[lang = "debug_trait"]
    pub trait Debug {
        fn fmt(&self, f: &mut Formatter) -> Result<(), Error>;
    }

`?` 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 `)`.

# Examples

Deriving an implementation:

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

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

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

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);

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);

This outputs:

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

## Required Methods

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

Formats the value using the given formatter.

# Examples

    use std::fmt;

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

    impl fmt::Debug for Position {
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
            write!(f, "({:?}, {:?})", self.longitude, self.latitude)
        }
    }

    assert_eq!("(1.987, 2.983)".to_owned(),
               format!("{:?}", Position { longitude: 1.987, latitude: 2.983, }));

## Implementations on Foreign Types

###

`impl<I> Debug for Take<I> where I: Debug,`

[src]

####

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

[src]

###

`impl Debug for Any + 'static + Send`

[src]

####

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

[src]

###

`impl Debug for BorrowError`

[src]

####

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

[src]

###

`impl<T> Debug for AtomicPtr<T>`

[src]

####

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

[src]

###

`impl Debug for EscapeDefault`

[src]

####

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

[src]

###

`impl<'a> Debug for Utf8LossyChunk<'a>`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for NonZeroU8`

[src]

####

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

[src]

###

`impl Debug for EscapeDebug`

[src]

####

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

[src]

###

`impl<T> Debug for IntoIter<T> where T: Debug,`

[src]

####

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

[src]

###

`impl<A, B> Debug for Chain<A, B> where A: Debug, B: Debug,`

[src]

####

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

[src]

###

`impl Debug for Ordering`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for AtomicI8`

[src]

####

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

[src]

###

`impl<'a, A> Debug for IterMut<'a, A> where A: 'a + Debug,`

[src]

####

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

[src]

###

`impl<Y, R> Debug for GeneratorState<Y, R> where R: Debug, Y: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<H> Debug for BuildHasherDefault<H>`

[src]

####

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

[src]

###

`impl Debug for DecodeUtf16Error`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for NonZeroUsize`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<T> Debug for Once<T> where T: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for TryFromIntError`

[src]

####

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

[src]

###

`impl Debug for AtomicI16`

[src]

####

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

[src]

###

`impl Debug for EscapeUnicode`

[src]

####

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

[src]

###

`impl<'a, T> Debug for PinMut<'a, T> where T: Debug + ?Sized,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for ParseCharError`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for AtomicIsize`

[src]

####

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

[src]

###

`impl Debug for RangeFull`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for SipHasher`

[src]

####

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

[src]

###

`impl<'a, T> Debug for IterMut<'a, T> where T: 'a + Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for AtomicU32`

[src]

####

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

[src]

###

`impl Debug for AtomicUsize`

[src]

####

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

[src]

###

`impl Debug for InvalidSequence`

[src]

####

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

[src]

###

`impl Debug for Any + 'static + Sync + Send`

[src]

####

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

[src]

###

`impl<F> Debug for RepeatWith<F> where F: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for ParseIntError`

[src]

####

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

[src]

###

`impl Debug for Pinned`

[src]

####

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

[src]

###

`impl Debug for NonZeroU64`

[src]

####

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

[src]

###

`impl Debug for AtomicBool`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for TryFromSliceError`

[src]

####

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

[src]

###

`impl Debug for AtomicU8`

[src]

####

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

[src]

###

`impl Debug for BorrowMutError`

[src]

####

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

[src]

###

`impl Debug for AtomicI32`

[src]

####

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

[src]

###

`impl Debug for Any + 'static`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<'b, T> Debug for Ref<'b, T> where T: Debug + ?Sized,`

[src]

####

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

[src]

###

`impl Debug for CharTryFromError`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for Ordering`

[src]

####

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

[src]

###

`impl Debug for ToLowercase`

[src]

####

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

[src]

###

`impl<T> Debug for Empty<T>`

[src]

####

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

[src]

###

`impl Debug for NoneError`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for ParseFloatError`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<'a, T> Debug for Iter<'a, T> where T: 'a + Debug,`

[src]

####

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

[src]

###

`impl<T> Debug for Discriminant<T>`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<Idx> Debug for Range<Idx> where Idx: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for TypeId`

[src]

####

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

[src]

###

`impl<I> Debug for DecodeUtf8<I> where I: Iterator<Item = u8> + Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for Utf8Lossy`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for AtomicU64`

[src]

####

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

[src]

###

`impl Debug for NonZeroU32`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for NonZeroU128`

[src]

####

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

[src]

###

`impl Debug for FpCategory`

[src]

####

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

[src]

###

`impl Debug for UnicodeVersion`

[src]

####

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

[src]

###

`impl Debug for AtomicU16`

[src]

####

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

[src]

###

`impl Debug for ToUppercase`

[src]

####

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

[src]

###

`impl Debug for EscapeDefault`

[src]

####

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

[src]

###

`impl<A> Debug for IntoIter<A> where A: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for NonZeroU16`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl Debug for AtomicI64`

[src]

####

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

[src]

###

`impl Debug for Duration`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<'a, A> Debug for Iter<'a, A> where A: 'a + Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<A> Debug for Repeat<A> where A: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

###

`impl<'b, T> Debug for RefMut<'b, T> where T: Debug + ?Sized,`

[src]

####

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

[src]

###

`impl<T> Debug for ManuallyDrop<T> where T: Debug,`

[src]

####

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

[src]

###

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

[src]

####

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

[src]

## Implementors

- `impl Debug for Layout` | [src]

- `impl<Ret, A> Debug for fn(A) -> Ret` | [src]

- `impl Debug for Error` | [src]

- `impl<'a, T> Debug for Windows<'a, T> where T: 'a + Debug,` | [src]

- `impl<'a, T> Debug for &'a mut T where T: Debug + ?Sized,` | [src]

- `impl Debug for i8` | [src]

- `impl<Ret, A, B, C> Debug for unsafe extern "C" fn(A, B, C, ...) -> Ret` | [src]

- `impl Debug for i16` | [src]

- `impl<T> Debug for [T; 16] where T: Debug,` | [src]

- `impl<'a> Debug for Lines<'a>` | [src]

- `impl<'a, T> Debug for alloc::slice::Iter<'a, T> where T: 'a + Debug,` | [src]

- `impl<T> Debug for [T; 1] where T: Debug,` | [src]

- `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 + ?Sized, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl Debug for Alignment` | [src]

- `impl<Ret> Debug for unsafe extern "C" fn() -> Ret` | [src]

- `impl<T> Debug for [T; 15] where T: Debug,` | [src]

- `impl Debug for Utf8Error` | [src]

- `impl<'a> Debug for Chars<'a>` | [src]

- `impl Debug for u128` | [src]

- `impl<Ret, A, B> Debug for unsafe extern "C" fn(A, B, ...) -> Ret` | [src]

- `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` | [src]

- `impl<'a> Debug for Bytes<'a>` | [src]

- `impl Debug for LayoutErr` | [src]

- `impl<Ret, A, B, C, D, E> Debug for fn(A, B, C, D, E) -> Ret` | [src]

- `impl Debug for bool` | [src]

- `impl<Ret, A> Debug for unsafe fn(A) -> Ret` | [src]

- `impl<T> Debug for [T; 25] where T: Debug,` | [src]

- `impl<T> Debug for [T; 28] where T: Debug,` | [src]

- `impl<'a> Debug for CharSearcher<'a>` | [src]

- `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` | [src]

- `impl<Ret, A, B, C, D, E> Debug for unsafe extern "C" fn(A, B, C, D, E) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe fn(A, B, C, D, E, F, G) -> Ret` | [src]

- `impl<T> Debug for [T; 7] where T: Debug,` | [src]

- `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` | [src]

- `impl<Ret, A, B, C> Debug for extern "C" fn(A, B, C, ...) -> Ret` | [src]

- `impl<'a> Debug for EncodeUtf16<'a>` | [src]

- `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` | [src]

- `impl Debug for f64` | [src]

- `impl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T8: Debug, T9: Debug,` | [src]

- `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` | [src]

- `impl<T> Debug for [T; 23] where T: Debug,` | [src]

- `impl<T> Debug for [T; 26] where T: Debug,` | [src]

- `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` | [src]

- `impl<T11> Debug for (T11,) where T11: Debug + ?Sized,` | [src]

- `impl<Ret, A, B, C, D, E, F, G, H, I> Debug for fn(A, B, C, D, E, F, G, H, I) -> Ret` | [src]

- `impl<T> Debug for [T; 2] where T: Debug,` | [src]

- `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` | [src]

- `impl<'a, T, P> Debug for alloc::slice::SplitN<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<'a, P> Debug for MatchIndices<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for fn(A, B, C, D, E, F, G) -> Ret` | [src]

- `impl<'a, P> Debug for SplitTerminator<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<'a, T, P> Debug for alloc::slice::Split<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret` | [src]

- `impl Debug for CannotReallocInPlace` | [src]

- `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` | [src]

- `impl<'a, P> Debug for RMatchIndices<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<T> Debug for [T; 30] where T: Debug,` | [src]

- `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` | [src]

- `impl<T> Debug for [T; 8] where T: Debug,` | [src]

- `impl Debug for SpawnErrorKind` | [src]

- `impl<'a> Debug for CharIndices<'a>` | [src]

- `impl<Ret> Debug for extern "C" fn() -> Ret` | [src]

- `impl<T> Debug for [T; 32] where T: Debug,` | [src]

- `impl Debug for Waker` | [src]

- `impl<'a> Debug for SplitWhitespace<'a>` | [src]

- `impl<Ret, A> Debug for unsafe extern "C" fn(A, ...) -> Ret` | [src]

- `impl Debug for !` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret` | [src]

- `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` | [src]

- `impl<Ret, A, B> Debug for unsafe extern "C" fn(A, B) -> Ret` | [src]

- `impl<T> Debug for [T; 18] where T: Debug,` | [src]

- `impl Debug for isize` | [src]

- `impl<'a, T> Debug for Chunks<'a, T> where T: 'a + Debug,` | [src]

- `impl<Ret, A, B> Debug for fn(A, B) -> Ret` | [src]

- `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` | [src]

- `impl Debug for ParseBoolError` | [src]

- `impl Debug for SpawnObjError` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret` | [src]

- `impl Debug for str` | [src]

- `impl Debug for CollectionAllocErr` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for unsafe fn(A, B, C, D, E, F) -> Ret` | [src]

- `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` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G) -> Ret` | [src]

- `impl<T> Debug for [T; 13] where T: Debug,` | [src]

- `impl<Ret, A, B, C, D> Debug for extern "C" fn(A, B, C, D) -> Ret` | [src]

- `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` | [src]

- `impl<'a, T, P> Debug for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<T> Debug for [T; 3] where T: Debug,` | [src]

- `impl<Ret, A, B, C, D> Debug for unsafe extern "C" fn(A, B, C, D) -> Ret` | [src]

- `impl<'a, P> Debug for alloc::str::RSplit<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<'a, T> Debug for ChunksMut<'a, T> where T: 'a + Debug,` | [src]

- `impl<T> Debug for [T; 29] where T: Debug,` | [src]

- `impl<'a, P> Debug for RSplitTerminator<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<Ret, A, B, C, D> Debug for extern "C" fn(A, B, C, D, ...) -> Ret` | [src]

- `impl<T> Debug for [T; 24] where T: Debug,` | [src]

- `impl<'a, T, P> Debug for alloc::slice::RSplit<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<Ret, A> Debug for extern "C" fn(A, ...) -> Ret` | [src]

- `impl<T> Debug for *const T where T: ?Sized,` | [src]

- `impl Debug for TaskObj` | [src]

- `impl<Ret, A, B, C> Debug for unsafe extern "C" fn(A, B, C) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for extern "C" fn(A, B, C, D, E, F) -> Ret` | [src]

- `impl Debug for char` | [src]

- `impl<T9, T10, T11> Debug for (T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T9: Debug,` | [src]

- `impl Debug for i32` | [src]

- `impl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<T> Debug for [T; 12] where T: Debug,` | [src]

- `impl Debug for f32` | [src]

- `impl<Ret, A, B, C, D> Debug for unsafe extern "C" fn(A, B, C, D, ...) -> Ret` | [src]

- `impl Debug for LocalWaker` | [src]

- `impl<'a, F> Debug for CharPredicateSearcher<'a, F> where F: FnMut(char) -> bool,` | [src]

- `impl<T> Debug for [T; 6] where T: Debug,` | [src]

- `impl<'a, P> Debug for alloc::str::RSplitN<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<T> Debug for [T; 19] where T: Debug,` | [src]

- `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` | [src]

- `impl Debug for ()` | [src]

- `impl<Ret, A> Debug for extern "C" fn(A) -> Ret` | [src]

- `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` | [src]

- `impl<T> Debug for [T; 4] where T: Debug,` | [src]

- `impl<T> Debug for [T; 10] where T: Debug,` | [src]

- `impl<Ret, A, B, C> Debug for fn(A, B, C) -> Ret` | [src]

- `impl<'a, T> Debug for alloc::slice::IterMut<'a, T> where T: 'a + Debug,` | [src]

- `impl<Ret, A, B, C, D> Debug for unsafe fn(A, B, C, D) -> Ret` | [src]

- `impl<T> Debug for Poll<T> where T: Debug,` | [src]

- `impl Debug for u8` | [src]

- `impl<'a, T, P> Debug for RSplitMut<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe fn(A, B, C, D, E, F, G, H) -> Ret` | [src]

- `impl Debug for Excess` | [src]

- `impl<'a, T> Debug for ExactChunksMut<'a, T> where T: 'a + Debug,` | [src]

- `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` | [src]

- `impl<'a, T> Debug for &'a T where T: Debug + ?Sized,` | [src]

- `impl<Ret, A, B, C, D, E> Debug for unsafe fn(A, B, C, D, E) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for extern "C" fn(A, B, C, D, E, F, ...) -> Ret` | [src]

- `impl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where T10: Debug, T11: Debug + ?Sized, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<'a, P> Debug for Matches<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `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` | [src]

- `impl<Ret> Debug for unsafe fn() -> Ret` | [src]

- `impl Debug for u64` | [src]

- `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` | [src]

- `impl<'a, T, P> Debug for alloc::slice::RSplitN<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<T> Debug for [T; 11] where T: Debug,` | [src]

- `impl<Ret, A, B> Debug for unsafe fn(A, B) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret` | [src]

- `impl Debug for i128` | [src]

- `impl<Ret, A, B, C> Debug for unsafe fn(A, B, C) -> Ret` | [src]

- `impl Debug for SearchStep` | [src]

- `impl Debug for i64` | [src]

- `impl Debug for u32` | [src]

- `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` | [src]

- `impl<'a, P> Debug for alloc::str::Split<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `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 + ?Sized, T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<Ret, A, B, C, D> Debug for fn(A, B, C, D) -> Ret` | [src]

- `impl<'a, T, P> Debug for SplitMut<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>` | [src]

- `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 + ?Sized, T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<Ret, A, B> Debug for extern "C" fn(A, B) -> Ret` | [src]

- `impl<'a, P> Debug for RMatches<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `impl<T> Debug for [T; 31] where T: Debug,` | [src]

- `impl<'a, 'b> Debug for StrSearcher<'a, 'b>` | [src]

- `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` | [src]

- `impl<T> Debug for [T; 22] where T: Debug,` | [src]

- `impl<'a> Debug for Context<'a>` | [src]

- `impl<T> Debug for [T; 21] where T: Debug,` | [src]

- `impl<Ret, A> Debug for unsafe extern "C" fn(A) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F) -> Ret` | [src]

- `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` | [src]

- `impl<T> Debug for [T] where T: Debug,` | [src]

- `impl<Ret, A, B, C, D, E> Debug for unsafe extern "C" fn(A, B, C, D, E, ...) -> Ret` | [src]

- `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` | [src]

- `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 + ?Sized, T2: Debug, T3: Debug, T4: Debug, T5: Debug, T6: Debug, T7: Debug, T8: Debug, T9: Debug,` | [src]

- `impl<T10, T11> Debug for (T10, T11) where T10: Debug, T11: Debug + ?Sized,` | [src]

- `impl Debug for AllocErr` | [src]

- `impl<T> Debug for [T; 5] where T: Debug,` | [src]

- `impl<Ret, A, B, C, D, E, F> Debug for fn(A, B, C, D, E, F) -> Ret` | [src]

- `impl<Ret, A, B, C> Debug for extern "C" fn(A, B, C) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E> Debug for extern "C" fn(A, B, C, D, E, ...) -> Ret` | [src]

- `impl<Ret, A, B, C, D, E> Debug for extern "C" fn(A, B, C, D, E) -> Ret` | [src]

- `impl<T> Debug for [T; 17] where T: Debug,` | [src]

- `impl<T> Debug for [T; 20] where T: Debug,` | [src]

- `impl<'a, T, P> Debug for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool, T: 'a + Debug,` | [src]

- `impl<'a> Debug for LinesAny<'a>` | [src]

- `impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret` | [src]

- `impl Debug for usize` | [src]

- `impl<T> Debug for [T; 14] where T: Debug,` | [src]

- `impl<Ret, A, B> Debug for extern "C" fn(A, B, ...) -> Ret` | [src]

- `impl<'a> Debug for Arguments<'a>` | [src]

- `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` | [src]

- `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` | [src]

- `impl<Ret, A, B, C, D, E, F, G, H> Debug for fn(A, B, C, D, E, F, G, H) -> Ret` | [src]

- `impl<'a, P> Debug for alloc::str::SplitN<'a, P> where P: Pattern<'a>, <P as Pattern<'a>>::Searcher: Debug,` | [src]

- `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` | [src]

- `impl<T> Debug for [T; 9] where T: Debug,` | [src]

- `impl<'a, T> Debug for ExactChunks<'a, T> where T: 'a + Debug,` | [src]

- `impl Debug for u16` | [src]

- `impl<T> Debug for [T; 27] where T: Debug,` | [src]

- `impl<Ret> Debug for fn() -> Ret` | [src]

- `impl<T> Debug for *mut T where T: ?Sized,` | [src]

- `impl<T> Debug for [T; 0] where T: Debug,` | [src]

- `impl Debug for Global` | [src]

- `impl<T: Debug + ?Sized> Debug for Box<T>` | [src]

- `impl<T: Debug + ?Sized> Debug for PinBox<T>` | [src]

- `impl<T: ?Sized + Debug> Debug for alloc::arc::Weak<T>` | [src]

- `impl<T: ?Sized + Debug> Debug for Arc<T>` | [src]

- `impl<T: ?Sized + Debug> Debug for Rc<T>` | [src]

- `impl<T: ?Sized + Debug> Debug for alloc::rc::Weak<T>` | [src]

- `impl<'a, T: Ord + Debug> Debug for PeekMut<'a, T>` | [src]

- `impl<T: Debug + Ord> Debug for BinaryHeap<T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::binary_heap::Iter<'a, T>` | [src]

- `impl<T: Debug> Debug for alloc::binary_heap::IntoIter<T>` | [src]

- `impl<'a, T: Debug + 'a> Debug for alloc::binary_heap::Drain<'a, T>` | [src]

- `impl<'a, K: 'a + Debug, V: 'a + Debug> Debug for alloc::btree_map::Iter<'a, K, V>` | [src]

- `impl<'a, K: Debug + 'a, V: Debug + 'a> Debug for alloc::btree_map::IterMut<'a, K, V>` | [src]

- `impl<K: Debug, V: Debug> Debug for alloc::btree_map::IntoIter<K, V>` | [src]

- `impl<'a, K: 'a + Debug, V: 'a> Debug for Keys<'a, K, V>` | [src]

- `impl<'a, K: 'a, V: 'a + Debug> Debug for Values<'a, K, V>` | [src]

- `impl<'a, K: Debug + 'a, V: Debug + 'a> Debug for ValuesMut<'a, K, V>` | [src]

- `impl<'a, K: 'a + Debug, V: 'a + Debug> Debug for alloc::btree_map::Range<'a, K, V>` | [src]

- `impl<'a, K: 'a + Debug, V: 'a + Debug> Debug for RangeMut<'a, K, V>` | [src]

- `impl<'a, K: 'a + Debug + Ord, V: 'a + Debug> Debug for Entry<'a, K, V>` | [src]

- `impl<'a, K: 'a + Debug + Ord, V: 'a> Debug for VacantEntry<'a, K, V>` | [src]

- `impl<'a, K: 'a + Debug + Ord, V: 'a + Debug> Debug for OccupiedEntry<'a, K, V>` | [src]

- `impl<K: Debug, V: Debug> Debug for BTreeMap<K, V>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::btree_set::Iter<'a, T>` | [src]

- `impl<T: Debug> Debug for alloc::btree_set::IntoIter<T>` | [src]

- `impl<'a, T: Debug + 'a> Debug for alloc::btree_set::Range<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for Difference<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for SymmetricDifference<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for Intersection<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for Union<'a, T>` | [src]

- `impl<T: Debug> Debug for BTreeSet<T>` | [src]

- `impl<'a, B: ?Sized> Debug for Cow<'a, B> where B: Debug + ToOwned, <B as ToOwned>::Owned: Debug,` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::linked_list::Iter<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::linked_list::IterMut<'a, T>` | [src]

- `impl<T: Debug> Debug for alloc::linked_list::IntoIter<T>` | [src]

- `impl<'a, T: 'a + Debug, F> Debug for alloc::linked_list::DrainFilter<'a, T, F> where F: FnMut(&mut T) -> bool,` | [src]

- `impl<T: Debug> Debug for LinkedList<T>` | [src]

- `impl Debug for FromUtf8Error` | [src]

- `impl Debug for FromUtf16Error` | [src]

- `impl Debug for String` | [src]

- `impl Debug for ParseError` | [src]

- `impl<'a> Debug for alloc::string::Drain<'a>` | [src]

- `impl<T: Debug> Debug for Vec<T>` | [src]

- `impl<T: Debug> Debug for alloc::vec::IntoIter<T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::vec::Drain<'a, T>` | [src]

- `impl<'a, I: Debug + Iterator + 'a> Debug for Splice<'a, I> where I::Item: Debug,` | [src]

- `impl<'a, T: Debug + 'a, F: Debug> Debug for alloc::vec::DrainFilter<'a, T, F> where F: FnMut(&mut T) -> bool,` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::vec_deque::Iter<'a, T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::vec_deque::IterMut<'a, T>` | [src]

- `impl<T: Debug> Debug for alloc::vec_deque::IntoIter<T>` | [src]

- `impl<'a, T: 'a + Debug> Debug for alloc::vec_deque::Drain<'a, T>` | [src]

- `impl<T: Debug> Debug for VecDeque<T>` | [src]

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse 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`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)