From 2ae1a61ae4d3b23e5f7feaf4c7daf0ce72ffbb92 Mon Sep 17 00:00:00 2001 From: dcode Date: Wed, 13 Jul 2022 17:02:19 +0200 Subject: [C-API] Add type system C-API (#4790) --- src/binaryen-c.cpp | 18 ++++++++++++++++++ src/binaryen-c.h | 10 ++++++++++ 2 files changed, 28 insertions(+) (limited to 'src') diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 8b4021c5b..0cc4bb115 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -184,6 +184,24 @@ BinaryenPackedType BinaryenPackedTypeInt16(void) { return Field::PackedType::i16; } +// TypeSystem + +BinaryenTypeSystem BinaryenTypeSystemEquirecursive() { + return static_cast(TypeSystem::Equirecursive); +} +BinaryenTypeSystem BinaryenTypeSystemNominal() { + return static_cast(TypeSystem::Nominal); +} +BinaryenTypeSystem BinaryenTypeSystemIsorecursive() { + return static_cast(TypeSystem::Isorecursive); +} +BinaryenTypeSystem BinaryenGetTypeSystem() { + return BinaryenTypeSystem(getTypeSystem()); +} +void BinaryenSetTypeSystem(BinaryenTypeSystem typeSystem) { + setTypeSystem(TypeSystem(typeSystem)); +} + // Expression ids BinaryenExpressionId BinaryenInvalidId(void) { diff --git a/src/binaryen-c.h b/src/binaryen-c.h index bd8e19048..bf8ed01bb 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -129,6 +129,16 @@ BINARYEN_API BinaryenPackedType BinaryenPackedTypeNotPacked(void); BINARYEN_API BinaryenPackedType BinaryenPackedTypeInt8(void); BINARYEN_API BinaryenPackedType BinaryenPackedTypeInt16(void); +// TypeSystem + +typedef uint32_t BinaryenTypeSystem; + +BINARYEN_API BinaryenTypeSystem BinaryenTypeSystemEquirecursive(void); +BINARYEN_API BinaryenTypeSystem BinaryenTypeSystemNominal(void); +BINARYEN_API BinaryenTypeSystem BinaryenTypeSystemIsorecursive(void); +BINARYEN_API BinaryenTypeSystem BinaryenGetTypeSystem(void); +BINARYEN_API void BinaryenSetTypeSystem(BinaryenTypeSystem typeSystem); + // Expression ids (call to get the value of each; you can cache them) typedef uint32_t BinaryenExpressionId; -- cgit v1.2.3