hexga_io_derive

Crates.iohexga_io_derive
lib.rshexga_io_derive
version0.0.11-beta.3
created_at2025-05-29 22:15:44.720273+00
updated_at2025-08-12 19:04:34.63974+00
descriptionhexga_io derive macro
homepagehttps://github.com/Thomas-Mewily/hexga
repositoryhttps://github.com/Thomas-Mewily/hexga
max_upload_size
id1694451
size6,883
Mewily (Thomas-Mewily)

documentation

README

HexGa Io Derive

The derive macro for Hexga Io.

Check hexga_io :

HexGa Io

Io file abstraction based on serde to allow loading/saving and converting bytes.

Is support custom user define extension and convertion, and it also support common markup extension (json, ron, xml...).

Goal :

  • Simple to use
  • Allow to save composite file

Non Goal :

  • Async Loading (use some kind handle that will load it later instead, loading composite file async in a non blocking way is hard...)
use hexga_io::prelude::*;

"Hello file !".save_to_disk("./myfile.txt").unwrap();

let read = String::load_from_disk("./myfile.txt").unwrap();
assert_eq!("Hello file !", read);

// #[io] derive (serde::Serdialize, serde::Deserialize) and (hexga_io::Load, hexga_io::Save)
#[io]
#[derive(PartialEq, Debug)]
struct Person
{
    age : i32,
    name : String,
}

let mut fs = IoFsDisk::new();

    let person = Person { age: 42, name: "Life".to_owned() };
    person.save_to("./person.json", &mut fs).unwrap();
    person.save_to("./person.ron" , &mut fs).unwrap();

fs.commit().unwrap();

assert_eq!(Person::load_from_disk("./person.ron"), Ok(person));

Main Hexga crate

Check hexga : https://crates.io/crates/hexga if you are interested in a quick start, it regroup multiple hexga crates.

Commit count: 338

cargo fmt