This crate provides
indoc's indentation logic for use with strings that are
not statically known at compile time. For unindenting string literals, use
This crate exposes two functions:
unindent(&str) -> String
unindent_bytes(&[u8]) -> Vec<u8>
The following rules characterize the behavior of unindent:
- 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":
unindent(" / unindent( / unindent("line one line one / "line one / line two line two / line two / ") ") / ") /
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.
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.