#ifndef BLUELIB_SERIAL_H_ #define BLUELIB_SERIAL_H_ #include #include #include struct b_dsref; typedef enum b_serial_format { B_SERIAL_FORMAT_NONE = 0, B_SERIAL_FORMAT_BITCODE, B_SERIAL_FORMAT_JSON, B_SERIAL_FORMAT_TOML, } 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_dsref *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_dsref **dest, b_serial_flags flags); #endif