# Cairo Serde Derive

Implement the `CairoSerde` macro to derive the `CairoSerde` trait on your types.
The expanded core uses the `CairoSerde` type from `cainome-cairo-serde` crate, which will need to be imported in the crate that uses this derive.

`CairoSerde` allows to serialize and deserialize cairo types to/from native rust types.

## Example

```rust
#[derive(Debug, CairoSerde, PartialEq)]
struct ExampleSimple {
    x: Vec<Felt>,
    y: u32,
}

let example = ExampleSimple {
    x: vec![Felt::ZERO],
    y: 2,
};

let serialized = ExampleSimple::cairo_serialize(&example);

let offset = 0;
let deserialized = ExampleSimple::cairo_deserialize(&serialized, offset).unwrap();

assert_eq!(deserialized, example);
```