#include "state.h" // FREE void Free_configuration(configuration *E) { if(E->inet != NULL) free(E->inet); } void Free_data(data *E) { UNUSED(E); } // PARSE char * Parse_configuration(configuration *E, ucl_object_t const *root, char const *Position) { char *Error; UCL_CHECK_ROOT(OBJECT); ucl_object_t const *inet = ucl_object_lookup(root, "inet"); if(inet != NULL) { UCL_CHECK(inet, STRING); E->inet = strdup(ucl_object_tostring(inet)); } return NULL; error: return Error; } char * Parse_data(data *E, ucl_object_t const *root, char const *Position) { char *Error; UCL_CHECK_ROOT(OBJECT); ucl_object_t const *id = ucl_object_lookup(root, "id"); UCL_CHECK(id, INT); s64 ID = ucl_object_toint(id); if(ID < 0 || ID > UINT32_MAX) { asprintf(&Error, "%s id invalid (%ld)", Position, ID); goto error; } E->ID = (u32)ID; return NULL; error: return Error; } // SAVE void Save_data(jprint_state *S, data const *E) { JPrintObjectBegin(S); JPrintMember(S, "id"); JPrint_ssize_t(S, E->ID); JPrintObjectEnd(S); }