Skip to content

Commit 86a8850

Browse files
Update myshell.h
1 parent 01a1484 commit 86a8850

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

code/logic/fossil/crabdb/myshell.h

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,71 @@ typedef enum {
8484
FOSSIL_MYSHELL_ERROR_UNKNOWN /**< Unknown or unspecified error occurred. */
8585
} fossil_bluecrab_myshell_error_t;
8686

87+
// ============================================================================
88+
// FSON v2 compatible value representation (local to MyShell)
89+
// ============================================================================
90+
typedef enum {
91+
MYSHELL_FSON_TYPE_NULL = 0,
92+
MYSHELL_FSON_TYPE_BOOL,
93+
94+
// Scalars
95+
MYSHELL_FSON_TYPE_I8,
96+
MYSHELL_FSON_TYPE_I16,
97+
MYSHELL_FSON_TYPE_I32,
98+
MYSHELL_FSON_TYPE_I64,
99+
MYSHELL_FSON_TYPE_U8,
100+
MYSHELL_FSON_TYPE_U16,
101+
MYSHELL_FSON_TYPE_U32,
102+
MYSHELL_FSON_TYPE_U64,
103+
MYSHELL_FSON_TYPE_F32,
104+
MYSHELL_FSON_TYPE_F64,
105+
106+
// Literals
107+
MYSHELL_FSON_TYPE_OCT,
108+
MYSHELL_FSON_TYPE_HEX,
109+
MYSHELL_FSON_TYPE_BIN,
110+
111+
// Strings
112+
MYSHELL_FSON_TYPE_CHAR,
113+
MYSHELL_FSON_TYPE_CSTR,
114+
115+
// Composite
116+
MYSHELL_FSON_TYPE_ARRAY,
117+
MYSHELL_FSON_TYPE_OBJECT,
118+
119+
// v2 Additions
120+
MYSHELL_FSON_TYPE_ENUM,
121+
MYSHELL_FSON_TYPE_DATETIME,
122+
MYSHELL_FSON_TYPE_DURATION
123+
} fossil_bluecrab_myshell_fson_type_t;
124+
125+
typedef struct {
126+
fossil_bluecrab_myshell_fson_type_t type;
127+
union {
128+
bool b;
129+
int8_t i8;
130+
int16_t i16;
131+
int32_t i32;
132+
int64_t i64;
133+
uint8_t u8;
134+
uint16_t u16;
135+
uint32_t u32;
136+
uint64_t u64;
137+
float f32;
138+
double f64;
139+
char *oct;
140+
char *hex;
141+
char *bin;
142+
char c;
143+
char *cstr;
144+
char *array;
145+
char *object;
146+
char *enum_symbol;
147+
char *datetime;
148+
char *duration;
149+
} as;
150+
} fossil_bluecrab_myshell_fson_value_t;
151+
87152
/**
88153
* -------------------------------
89154
* Simple, Git-like Public API

0 commit comments

Comments
 (0)