About
Repository stores code for Rust library that allows to read from and write to .io file format.
Functions and plans
The current status of both serialization and deserialization:
- Primitive types
- Strings
- Arrays
- Vectors
- Hashmaps
- Structs (Named{} and tuple())
- Generics
- Combinations of all above
- Tuples
- Option
- Result
- Enums
- &str type
- Slices
Capabilities
- Serialization of supported types using macro to_io!() using objects reference,
- Deserialization of supported types using macro from_io!() using .io formatted String and wanted objects type,
- Renaming structs fields in and from .io formatted String using #[io_name()] helper macro using String literal as argument.
- Ordering structs fields in and from .io formatted String using #[io_order()] helper macro using either FIRST and LAST keywords or an i16 Integer.
See example below for usage of those capabilities.
Example usage
use *; // required import
// required macro derive IoDeSer, Debug is not required
// required macro derive, Debug is not required
/*
Output:
|
Address->|
|
number->|65|
street->|Tęczowa|
city->|Warsaw|
|
+
|
number->|220|
street->|Strasse|
city->|Hamburg|
|
|
Name->|John|
LastName->|Kowalski|
Age->|21|
|
Person { name: "John", last_name: "Kowalski", age: 21, address: [Address { city: "Warsaw", number: 65, street: "Tęczowa" }, Address { city: "Hamburg", number: 220, street: "Strasse" }] }
*/