scholium::mark annotation replaces all kinds of TODOs with Rust-native way, allowing developers to categorize them with better precision, write better reasoning and make them easy to extract, report and maintain in the long run. Thanks to Rust literal string boundaries, it’s possible to write long multiline reasons, for example allowing to attach even code snippets if needed.

Annotation is made to be attached to an exact place and it provides only documentation value without altering an item attached in any way. This means if the annotation when be attached to a function, module, crate (or a statement), it documents this particular item and nothing else.

#[scholium::mark(
    info,
    implementation::extend,
    doc::possible_extensions,
    reason = "Extend functionality to use any type implementing `+` operation"
)]
fn add(a: u32, b: u32) -> u32 {
    a + b
}