[WIP] esyn

github crates.io docs.rs build status

Serialization/Deserialization Rust In Rust.

Example

```rust fn main() { use esyn::*;

#[derive(Debug, PartialEq, EsynDe, EsynSer)]
struct Test {
    _string: String,
    _vec_u32: Vec<u32>,
    _opt_i64: Option<i64>,
}

let test = Test {
    _string: "hello".to_string(),
    _vec_u32: vec![1, 2, 4],
    _opt_i64: Some(-9223372036854775807i64),
};
let config = r#"

fn main() { let a = Test { string: "hello", _vecu32: [1, 2, 4], };

a._opt_i64 = Some(-9223372036854775807i64);

} "#;

let ast = Esyn::ast(config).unwrap();
let esyn = Esyn::new(&ast).unwrap();
let a = esyn.get::<Test>("main", "a").unwrap();
assert_eq!(&test, &*a);

let ast = Esyn::to_pretty(quote! {
    /// Serialization
    fn main() {
        let a = #a;
    }
})
.unwrap();
println!("{ast}");

} ```

For more examples take a look on tests

Supported Types

```rust u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize f32 f64 bool char String

Vec Option Box

HashMap BTreeMap IpAddr Ipv4Addr Ipv6Addr

Struct Enum Tuple

```