indoc 0.1.2

Indented document literals
docs.rs failed to build indoc-0.1.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: indoc-2.0.5

Indented Documents (indoc)

Build Status

This Rust crate provides a compiler plugin for indented string literals.

Installation

[dependencies]
indoc = "^0.1"

Using Indoc

The indoc! macro trims the widest possible rectangle of spaces from the beginning of lines in its argument:

#![plugin(indoc)]

fn main() {
    let testing = indoc!("
        a
           b
        c
           d");
    let expected = "a\n   b\nc\n   d";
    assert_eq!(testing, expected);
}

To add a trailing newline:

#![plugin(indoc)]

fn main() {
    let testing = indoc!("
        a
           b
        c
           d
        ");
    let expected = "a\n   b\nc\n   d\n";
    assert_eq!(testing, expected);
}

Indoc also works with raw string literals:

#![plugin(indoc)]

fn main() {
    let testing = indoc!(r#"
        a
           "b"
        c
           d
        "#);
    let expected = "a\n   \"b\"\nc\n   d\n";
    assert_eq!(testing, expected);
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Indoc by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.