summaryrefslogtreecommitdiff
path: root/modules/tools
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-02-04 23:40:25 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-02-04 23:40:25 +0100
commit4e45bbc55c4011b919f0af8d43850748209f7f09 (patch)
tree121018cddbc5f774092af044ab3af93a91b70590 /modules/tools
parent6f2cabfa4311eb71d70ec03a0a46b9ab55fd0820 (diff)
codec,tools: Iface problems
Diffstat (limited to 'modules/tools')
-rw-r--r--modules/tools/c_gen_iface.hpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/modules/tools/c_gen_iface.hpp b/modules/tools/c_gen_iface.hpp
index f9ff219..08cf2f4 100644
--- a/modules/tools/c_gen_iface.hpp
+++ b/modules/tools/c_gen_iface.hpp
@@ -16,9 +16,28 @@ namespace impl {
namespace schema {
using namespace saw::schema;
+using CVar = Struct<
+ Member<schema::String, "schema">,
+ Member<schema::String, "type">,
+ Member<schema::String, "name">
+>;
+
+using CStruct = Struct<
+ Member<schema::String, "schema">,
+ Member<schema::String, "name">,
+ Member<Array<CVar>, "members">
+>;
+
+using CFunction = Struct<
+ Member<schema::String, "schema">,
+ Member<schema::String, "name">,
+ Member<Array<CVar>, "params">
+>;
+
using CIface = Struct<
- Member<schema::String,"members">
- Member<schema::String,"structs">
+ Member<schema::String, "schema">,
+ Member<Array<CStruct>,"structs">,
+ Member<Array<CFunction>,"function">
>;
}
/**
@@ -424,6 +443,11 @@ error_or<void> generate_iface_example(){
schema::Member<Func1, "func_one">
>;
+ using CIfaceDesc = schema::Struct<
+ Member<schema::String, "prefix">,
+ Member<schema::String, "encoding">
+ >;
+
impl::c_types::state c_state;
c_state.prefix = "c_saw";
c_state.encoding = "saw::encode::Native";