summaryrefslogtreecommitdiff
path: root/src/sf.bridge/state.c
diff options
context:
space:
mode:
authordautor <karlo98.m@gmail.com>2024-11-16 13:22:54 +0100
committerdautor <karlo98.m@gmail.com>2024-11-16 17:54:38 +0100
commit47778ccd67cbb3fb70dda706911d3166038ca010 (patch)
tree906bf0537d14f5ce8e2528736fb89a3499ada214 /src/sf.bridge/state.c
Import project
Diffstat (limited to 'src/sf.bridge/state.c')
-rw-r--r--src/sf.bridge/state.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/sf.bridge/state.c b/src/sf.bridge/state.c
new file mode 100644
index 0000000..c7780f3
--- /dev/null
+++ b/src/sf.bridge/state.c
@@ -0,0 +1,58 @@
+#include "state.h"
+
+// FREE
+
+void
+Free_configuration(configuration *E)
+{
+ UNUSED(E);
+}
+
+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);
+ UNUSED(E);
+ 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);
+}