savier/README.md

90 lines
1.8 KiB
Markdown

```
priv data:char* = """[
player:{
player_x=200;
player_y=300;
minor:{
a=1;
b=3;
}
minor2:{
hah= vlad;
minor2_sub_minor1:{
heh=dalv;
}
minor2_sub_minor2:{
heha=lvda;
}
}
}
enemy:{
damage=10;
speed=120;
}
""";
priv func print_sub_parent(parent:save_data_parent*) {
for (i := 0; i < parent.sub_parents; i++) {
p:save_data_parent* = parent.sub_parent[i];
print_paires(p);
if (p.has_sub_parent) {
print_sub_parent(p);
}
}
}
priv func print_paires(parent:save_data_parent*) {
for (i := 0; i < parent.total; i++) {
printf("Key: %s, Value: %s in parent: %s, id: %zu \n", parent.keys[i], parent.values[i], parent.name, parent.id);
}
}
priv func print_parent(parent:save_data_parent*) {
print_paires(parent);
if (parent.has_sub_parent) {
print_sub_parent(parent);
}
}
priv func print_all(save:save_data*) {
for (i := 0; i < save.total_parents; i++) {
p:save_data_parent* = save.parents[i];
print_parent(p);
}
}
func main(argc:int, argv:char**):int {
save:save_data;
save_data_init(&save, "player.stat"); //Creates and overrides file "player.stat"
manually:char* = save_data_serialize_parent("programatically1", "foo", "42", "", 32);
manually2:char* = save_data_serialize_parent("programatically2", "foo", "42", manually, 64);
save_data_write(&save, data, true);
save_data_write(&save, manually, false);
save_data_write(&save, manually2, false);
save_data_write(&save, "]", false);
// Read back what we have saved
save_data_read(&save);
printf("Total parents: %zu\n", save.total_parents);
print_all(&save);
save_data_free(&save);
free(manually);
free(manually2);
return 0;
}
```