meta: add serial module for (de)serialising objects
This commit is contained in:
34
serial/include/blue/serial.h
Normal file
34
serial/include/blue/serial.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef BLUELIB_SERIAL_H_
|
||||
#define BLUELIB_SERIAL_H_
|
||||
|
||||
#include <blue/core/misc.h>
|
||||
#include <blue/core/status.h>
|
||||
#include <blue/core/stream.h>
|
||||
|
||||
struct b_object;
|
||||
|
||||
typedef enum b_serial_format {
|
||||
B_SERIAL_FORMAT_NONE = 0,
|
||||
B_SERIAL_FORMAT_BITCODE,
|
||||
B_SERIAL_FORMAT_JSON,
|
||||
} b_serial_format;
|
||||
|
||||
typedef enum b_serial_flags {
|
||||
B_SERIAL_F_NONE = 0,
|
||||
B_SERIAL_F_PRETTY = 0x01u,
|
||||
} b_serial_flags;
|
||||
|
||||
typedef struct b_serial_ctx b_serial_ctx;
|
||||
|
||||
BLUE_API b_status b_serial_ctx_create(b_serial_ctx **out);
|
||||
BLUE_API b_status b_serial_ctx_destroy(b_serial_ctx *ctx);
|
||||
|
||||
BLUE_API b_status b_serial_ctx_serialise(
|
||||
b_serial_ctx *ctx, b_serial_format fmt, struct b_object *src,
|
||||
b_stream *dest, b_serial_flags flags);
|
||||
|
||||
BLUE_API b_status b_serial_ctx_deserialise(
|
||||
b_serial_ctx *ctx, b_serial_format fmt, b_stream *src,
|
||||
struct b_object **dest, b_serial_flags flags);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user