# Nesty
A small crate to help generate human readable code from rust.
The primary interface is the `code!` macro which looks as follows:
```rust
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:
```rust
let if_expr = code!{
[0] "if x > 0 {";
[1] "println(\"found one!\")";
[0] "}"
}
code!{
[0] "fn main() {";
[1] if_expr;
[0] "}"
}
```
which will produce
```rust
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.