aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/include/janet.h
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2021-05-28 21:37:13 -0500
committerCalvin Rose <calsrose@gmail.com>2021-05-29 11:43:18 -0500
commit4d983e54b51276f21a6740f36ca6c438dced8c2f (patch)
treee2d6fd7b020d268dc8348b7c6a704d92693b1392 /src/include/janet.h
parentMake jpm configurable for environments like MinGW. (diff)
Initial struct prototype code.
Also add a number of cfunctions for manipulating structs with prototypes.
Diffstat (limited to 'src/include/janet.h')
-rw-r--r--src/include/janet.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/include/janet.h b/src/include/janet.h
index 0b41987c..bf111e57 100644
--- a/src/include/janet.h
+++ b/src/include/janet.h
@@ -922,6 +922,7 @@ struct JanetStructHead {
int32_t length;
int32_t hash;
int32_t capacity;
+ const JanetKV *proto;
const JanetKV data[];
};
@@ -1515,10 +1516,13 @@ JANET_API JanetSymbol janet_symbol_gen(void);
#define janet_struct_length(t) (janet_struct_head(t)->length)
#define janet_struct_capacity(t) (janet_struct_head(t)->capacity)
#define janet_struct_hash(t) (janet_struct_head(t)->hash)
+#define janet_struct_proto(t) (janet_struct_head(t)->proto)
JANET_API JanetKV *janet_struct_begin(int32_t count);
JANET_API void janet_struct_put(JanetKV *st, Janet key, Janet value);
JANET_API JanetStruct janet_struct_end(JanetKV *st);
JANET_API Janet janet_struct_get(JanetStruct st, Janet key);
+JANET_API Janet janet_struct_rawget(JanetStruct st, Janet key);
+JANET_API Janet janet_struct_get_ex(JanetStruct st, Janet key, JanetStruct *which);
JANET_API JanetTable *janet_struct_to_table(JanetStruct st);
JANET_API const JanetKV *janet_struct_find(JanetStruct st, Janet key);