glitchup_derive

glitchup<em>derive glitchup</em>derive

A group of procedural macros to assist in the use of glitchup. Check any updates on the changelog.

#[derive(MutConfig)]

This derivation macro is used to derive MutConfig for any compatible struct. For a struct to be compatible, the following must apply:

These specific primitives were selected due to the MutOptionVal using said values.

The MutConfig trait implements a to_hashmap function, where the fields of the struct are converted into a HashMap<String, MutOptionVal> to be used by a Mutation.

```rust

[derive(Debug, Deserialize, MutConfig)]

struct MainConfig { mutation : MutationConfig, mutations : Vec> // works! mapint : Vec> // fails! }

[derive(Debug, Deserialize, MutConfig)]

struct MutationConfig { min : Option, max : Option, chunksize : isize, } ```

In MainConfig above, mapint would fail, since it uses the incompatible type u8. However, we need it in order for our application to work. Let's assume that no Mutation will use it. Therefore, what we can do is add the #[ignore] attribute:

```rust

[derive(Debug, Deserialize, MutConfig)]

struct MainConfig { mutation : MutationConfig, mutations : Vec> // works! #[ignore] mapint : Vec> // all ok now! } ... ```

Any field tagged with #[ignore] will not be included in to_hashmap(...).