#display #traits #derive #standard #docs #comments #lite

displaydoc-lite

Implement the Display trait using your standard doc comments

3 releases

0.1.3 Feb 8, 2021
0.1.2 Feb 7, 2021
0.1.1 Feb 7, 2021
0.1.0 Feb 7, 2021

#2006 in Rust patterns

MIT/Apache

12KB
165 lines

displaydoc-lite

Crates.io Documentation

Implement the Display trait using your standard doc comments.

This crate is a lite version of the popular crate displaydoc. It provides the same functionality but using a declarative macro instead and not depending on syn or quote.

This crate is also usable in no_std environments. No additional features are required for that.

Note: displaydoc-lite still has a proc-macro as a dependency, but it's very tiny and doesn't have any dependencies.

Example

use displaydoc_lite::displaydoc;

displaydoc! {
    #[derive(Debug)]
    pub enum DataStoreError {
        /// data store disconnected: {_0}
        Disconnect(io::Error),
        /// the data for key `{_0}` is not available
        Redaction(String),
        /// invalid header (expected {expected}, found {found})
        InvalidHeader {
            expected: String,
            found: String,
        },
        /// unknown data store error
        Unknown,
    }
}

Details

Listing of all supported syntax variants inside a {}:

  • {var} -> write!("{}", self.var)
  • {_0} -> write!("{}", self.0)
  • {var:?} -> write!("{:?}", self.var)
  • {_0:?} -> write!("{:?}", self.0)

License

Licensed under either Apache License or the MIT license.

Dependencies