| Crates.io | nesty |
| lib.rs | nesty |
| version | 0.2.0 |
| created_at | 2021-08-06 12:18:22.680654+00 |
| updated_at | 2022-08-09 08:50:43.464019+00 |
| description | Generate code with with human readable indentation |
| homepage | |
| repository | https://gitlab.com/TheZoq2/nesty |
| max_upload_size | |
| id | 432429 |
| size | 9,088 |
A small crate to help generate human readable code from rust.
The primary interface is the code! macro which looks as follows:
code!{
[0] "fn main() {";
[1] "println!(\"hello, world\");";
[0] "}"
}
The bracketed numbers give the desired amount of indentation for the line.
Code blocks can also be nested, like so:
let if_expr = code!{
[0] "if x > 0 {";
[1] "println(\"found one!\")";
[0] "}"
}
code!{
[0] "fn main() {";
[1] if_expr;
[0] "}"
}
which will produce
fn main() {
if x > 0 {
println!("found one!");
}
}
The code macro also supports strings, and vectors of strings which will be properly indented, (vectors are assumed to be a vector of lines, strings are indented after each newline)
With the diff_assert feature, the crate also has a assert_same_code macro
which checks two strings for equality, and if they differ, prints a diff before panicing.