35 lines
865 B
C
35 lines
865 B
C
#ifndef BLUE_SERIAL_H_
|
|
#define BLUE_SERIAL_H_
|
|
|
|
#include <blue/core/misc.h>
|
|
#include <blue/core/object.h>
|
|
#include <blue/core/status.h>
|
|
#include <blue/core/stream.h>
|
|
|
|
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, 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, b_object **dest,
|
|
b_serial_flags flags);
|
|
|
|
#endif
|