Rust: indoc
indoc
là một crate nhỏ nhưng hữu ích giúp canh lề (indented documents).
indoc!()
macro nhận multiline string và un-indents lúc compile time,
xoá tất cả khoảng trắng đầu tiên trên cách dòng dựa theo dòng đầu tiên.
File: Cargo.toml
[dependencies]
indoc = "1"
Ví dụ:
use indoc::indoc;
fn main() {
let testing = indoc! {"
def hello():
print('Hello, world!')
hello()
"};
let expected = "def hello():\n print('Hello, world!')\n\nhello()\n";
assert_eq!(testing, expected);
}
indoc
cũng hoạt động với raw string r# ... #
và byte string b" ... "
.