# Codegen
Provides an builder API to assist in generating Rust code.
More information about this crate can be found in the [crate documentation][dox]
[dox]: https://docs.rs/codegen/0.2.0/codegen/
## Installation
To use `codegen`, first add this to your `Cargo.toml`:
```toml
[dependencies]
codegen = "0.2.0"
```
Next, add this to your crate:
```rust
extern crate codegen;
```
## Usage
1) Create a `Scope` instance.
2) Use the builder API to add elements to the scope.
3) Call `Scope::to_string()` to get the generated code.
For example:
```rust
use codegen::Scope;
let mut scope = Scope::new();
scope.new_struct("Foo")
.derive("Debug")
.field("one", "usize")
.field("two", "String");
println!("{}", scope.to_string());
```
## Non-goals
`codegen` will not attempt to perform anything beyond basic formatting. For
improved formatting, the generated code can be passed to `rustfmt`.
## License
This project is licensed under the [MIT license](LICENSE).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in `codegen` by you, shall be licensed as MIT, without any
additional terms or conditions.