Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jojojet/to_debug

An alternative to the ToString trait that uses the Debug trait
https://github.com/jojojet/to_debug

Last synced: 7 days ago
JSON representation

An alternative to the ToString trait that uses the Debug trait

Awesome Lists containing this project

README

        

# 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:

```rust
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 }"#);
```

[`Debug`]: core::fmt::Debug
[`Display`]: core::fmt::Display

License: MIT