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.
Indented Documents (indoc)
This crate provides a Rust compiler plugin for indented string literals. The
indoc!()
macro takes a multiline string literal and un-indents it so the
leftmost non-space character is in the first column.
Installation
Indoc is available on crates.io. Use the
following in Cargo.toml
:
[]
= "^0.1"
Release notes are available under GitHub releases.
Using Indoc
Indoc also works with raw string literals:
And byte string literals:
Explanation
The following rules characterize the behavior of the indoc!()
macro:
- Count the leading spaces of each line, ignoring the first line and any lines that are empty or contain spaces only.
- Take the minimum.
- If the first line is empty i.e. the string begins with a newline, remove the first line.
- Remove the computed number of spaces from the beginning of each line.
This means there are a few equivalent ways to format the same string, so choose
one you like. All of the following result in the string "line one\nline two\n"
:
indoc!(" / indoc!( / indoc!("line one
line one / "line one / line two
line two / line two / ")
") / ") /
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.