Files
bluelib/serial/include/blue/serial.h

36 lines
870 B
C

#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_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