[][src]Crate partialdebug

Derive Debug for types where not all fields implement Debug.

This relies on specialization and thus requires nightly.

Non Exhaustive

Requires the debug_non_exhaustive feature. Only available for structs with named fields.

#![feature(debug_non_exhaustive)]
use partialdebug::non_exhaustive::PartialDebug;

#[derive(PartialDebug)]
struct Dog {
    legs: usize,
    eyes: usize,
    dna: DNA,
}

assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, .. }");

Placeholder with Type Info

use partialdebug::placeholder::PartialDebug;

#[derive(PartialDebug)]
struct Dog {
    legs: usize,
    eyes: usize,
    dna: DNA,
}

assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, dna: DNA }");

Placeholder with Custom Text

use partialdebug::placeholder::PartialDebug;

#[derive(PartialDebug)]
#[debug_placeholder = "Unknown"]
struct Dog {
    legs: usize,
    eyes: usize,
    dna: DNA,
}

assert_eq!(format!("{:?}", Dog::new()), "Dog { legs: 4, eyes: 2, dna: Unknown }");

Modules

non_exhaustive

The non exhaustive version of PartialDebug

placeholder

The placeholder version of PartialDebug

Structs

Placeholder

Placeholder struct for types that do not implement Debug

Traits

AsDebug

Specialized trait used to distinguish between types that implement Debug and one's that don't.