# Nesting
**Nesting** is a Rust proc-macro library for defining structs, enums, and impls in a nested fashion.
Ideal for writing configs or heavily-nested data structures.
# Installation
```sh
$ cargo add nesting
```
# Example
```rust
nesting::nest! {
#![derive(Debug)]
struct MyStruct {
child: MyChildStruct
struct MyChildStruct {
is_nested: bool,
impl Default for MyChildStruct {
fn default() -> Self {
Self { is_nested: true}
}
}
}
}
}
fn main() {
let x = MyStruct {
child: MyChildStruct::default(),
};
dbg!(&x);
}
```
Check out the [docs](https://docs.rs/nesting) for more info or take a look at the `nesting-examples` directory for a more detailed showcase of everything you can do with this crate.