#debugging #traits #derive-debug #to-string #value

to_debug

An alternative to the ToString trait that uses the Debug trait

1 unstable release

0.1.0 Aug 26, 2021

#2726 in Rust patterns

MIT license

5KB

to_debug

This crate exports the ToDebug trait, which is an alternative to ToString that uses Debug instead of Display.

This can be useful for writing doctests, as it allows you to inspect the values of private fields:

mod private {
    #[derive(Debug)]
    pub struct Person { name: String, age: u16 }
    // constructor boilerplate...
}
let p = private::Person::new("Joseph", 20);
// assert_eq!(p.name, "Joseph"); // This would fail since `name` is private.
assert_eq!(p.to_debug(), r#"Person { name: "Joseph", age: 20 }"#);

License: MIT


lib.rs:

This crate exports the ToDebug trait, which is an alternative to ToString that uses Debug instead of Display.

This can be useful for writing doctests, as it allows you to inspect the values of private fields:

mod private {
    #[derive(Debug)]
    pub struct Person { name: String, age: u16 }
    // constructor boilerplate...
}
let p = private::Person::new("Joseph", 20);
// assert_eq!(p.name, "Joseph"); // This would fail since `name` is private.
assert_eq!(p.to_debug(), r#"Person { name: "Joseph", age: 20 }"#);

No runtime deps