Crates.io | cainome-cairo-serde-derive |
lib.rs | cainome-cairo-serde-derive |
version | 0.1.0 |
source | src |
created_at | 2025-02-07 02:23:55.989114+00 |
updated_at | 2025-02-07 02:23:55.989114+00 |
description | A derive macro to implement the `CairoSerde` trait on structs or enums. |
homepage | https://github.com/cartridge-gg/cainome |
repository | https://github.com/cartridge-gg/cainome |
max_upload_size | |
id | 1546434 |
size | 11,896 |
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.
#[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);