2 releases

0.1.1 Jun 2, 2024
0.1.0 Jun 1, 2024

#1026 in Rust patterns

37 downloads per month

Apache-2.0

5KB

doxed

crates.io license tests lints

Doxed is a crate for making Rust doc strings available at runtime.

This crate provides a trait, Doxed, which can be derived for any type to make its doc strings available at runtime. The doc string is specified using the #[doc = "..."] attribute or, more commonly, the Rust doc comment (///).

Note that when deriving Doxed, the doc string is not modified in any way. This preserves the original formatting, including leading whitespace and line breaks. If you want to do any processing on the doc string, you can easily do so at runtime without additional derive magic.

Example

use doxed::Doxed;

/// This is an example struct.
///
/// Multiple lines are supported.
#[doc = "So are manual doc attributes."]
#[derive(Doxed)]
struct Example<'a, T>(&'a T);

assert_eq!(Example::<()>::DOX, &[
    " This is an example struct.",
    "",
    " Multiple lines are supported.",
    "So are manual doc attributes."
]);

License: Apache-2.0

Dependencies

~100KB