CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
sertype.h File Reference

The abstract data model, type resolution, and serialization errors. More...

#include <cx/container/sarray.h>
#include <cx/string.h>
#include <cx/struct/struct.h>
#include <cx/stype/stype.h>

Go to the source code of this file.

Data Structures

struct  SerResolved
 
struct  SerPathFrame
 
struct  SerTraverseState
 

Typedefs

typedef enum SerNodeKindEnum SerNodeKind
 
typedef struct SerResolved SerResolved
 
typedef bool(* SerTypeResolver) (SerResolved *out, strref name, void *user)
 
typedef struct SerPathFrame SerPathFrame
 
typedef struct SerTraverseState SerTraverseState
 

Enumerations

enum  SerNodeKindEnum {
  SER_Invalid = 0 , SER_EOF , SER_Null , SER_Bool ,
  SER_Int , SER_Uint , SER_Real , SER_Str ,
  SER_Bytes , SER_ArrayBegin , SER_ArrayEnd , SER_MapBegin ,
  SER_MapKey , SER_MapEnd , SER_TypeTag , SER_RefDef ,
  SER_RefUse
}
 
enum  SerCapabilitiesEnum {
  SER_Cap_NonStringKeys = (1 << 0) , SER_Cap_Bytes = (1 << 1) , SER_Cap_TypeTags = (1 << 2) , SER_Cap_Refs = (1 << 3) ,
  SER_Cap_ExactInt = (1 << 4) , SER_Cap_Skip = (1 << 5) , SER_Cap_Sizes = (1 << 6)
}
 
enum  SerFlagsEnum {
  SER_JSON_Pretty = 0x00000001 , SER_JSON_Compact = 0x00000002 , SER_Bin_Compact = 0x00000100 , SER_Bin_NoStringDedup = 0x00000200 ,
  SER_EmitDefaults = 0x01000000 , SER_Refs = 0x02000000 , SER_Strict = 0x10000000 , SER_Collect = 0x20000000
}
 Per-document options, passed to a backend's create function. More...
 
enum  SerErrorCodeEnum {
}
 Error codes reported through SerError::code. More...
 

Functions

bool serStructSetResolver (SerResolved *out, strref name, void *user)
 
bool serClassSetResolver (SerResolved *out, strref name, void *user)
 
bool serObjClassResolver (SerResolved *out, strref name, void *user)
 
void serPathString (string *out, const SerTraverseState *ws)
 

Detailed Description

The abstract data model, type resolution, and serialization errors.

The schema descriptor itself (STypeInfoExt) lives in cx/stype/stype.h – it is stype's type, not serialization's; this header only consumes it.

Definition in file sertype.h.