From f0d64cdbc48d0d418b39d38b3d9bfc9bc9ce1885 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 17 Jan 2020 14:28:54 +0100 Subject: [PATCH] Generate peek() versions for arrays/dicts --- variant-schema-compiler | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/variant-schema-compiler b/variant-schema-compiler index 1795b2a8..ffcc522b 100755 --- a/variant-schema-compiler +++ b/variant-schema-compiler @@ -811,6 +811,14 @@ class ArrayType(Type): C(" return ({ElementTypenameRef}) {{ ((const char *)v.base) + start, end - start }};") C("}}") + if self.is_fixed(): + C(""" +static inline const {element_fixed_type} * +{type_name_}peek ({TypeNameRef} v) {{ + return (const {element_fixed_type} *)v.base; +}} +"""); + C( """static inline GString * {type_name_}format ({TypeNameRef} v, GString *s, gboolean type_annotate) @@ -955,6 +963,15 @@ typedef struct {{ C('') + if self.element_is_fixed(): + C(""" +static inline const {TypeName}Entry * +{type_name_}peek ({TypeNameRef} v) {{ + return (const {TypeName}Entry *)v.base; +}} +"""); + + C("static inline {key_ctype}") C("{type_name_}entry_get_key ({TypeName}EntryRef v)") C("{{")