Contra is a configuration file loader for Rust.
The serialization/deserialization is heavily "inspired" (if not blatently copied) from the serde crate. My understanding of the crate was heavily improved by reading the article from Josh Mcguigan.
Contra adds the derive macro: Serialize which implements the serialize method for the given struct. Contra adds the derive macro: Deserialize which implements the deserialize method for the given struct. These functions are best used via the Persistant trait which automatically implemented for all struct that are both Serializable, and Deserializable. The Persistant trait provides the functions load and save, which selects the appropiate serializer/deserializer based on the path given as parameter.
```rust
pub struct Player {
name: String,
health: i32,
dmg: f32,
items: Vec
pub struct Item {
name: String,
slot: u32,
stats: Vec
fn main() { let saved_player = Player::default(); player1::save("Player1.json").expect("failed to save player");
let loaded_player = Player::load("Player1.json").expect("failed to load player");
} ```