contra 1.0.5

A minimal serialization/deserialization library with expand persistancy functionality
Documentation
# Contra
Contra is a configuration file loader for Rust.

The serialization/deserialization is heavily "inspired" (if not blatently copied) from the [serde](https://docs.rs/serde/latest/serde/) crate. My understanding of the crate was heavily improved by reading the article from [Josh Mcguigan](https://www.joshmcguigan.com/blog/understanding-serde/).

## Features
- [x] Load literals
- [x] Load collection of literals
- [x] Load nested structs
- [x] Load collection of structs
- [ ] \(Optional) Support multiple File Formats

## Usuage
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.

## Example
```rust
#[derive(Serialize, Deserialize, Default)]
pub struct Player {
    name: String,
    health: i32,
    dmg: f32,
    items: Vec<Item>,
}

#[derive(Deserialize, Deserialize)]
pub struct Item {
    name: String,
    slot: u32,
    stats: Vec<f32>,
}

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");
}
```