From 9383579d43f834519d5061527f749acf8dca59c6 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Thu, 16 Jul 2026 15:10:27 +0200 Subject: Prepping for abstract data in lbm --- modules/core/c++/abstract/schema.hpp | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 modules/core/c++/abstract/schema.hpp (limited to 'modules/core/c++/abstract/schema.hpp') diff --git a/modules/core/c++/abstract/schema.hpp b/modules/core/c++/abstract/schema.hpp new file mode 100644 index 0000000..8305005 --- /dev/null +++ b/modules/core/c++/abstract/schema.hpp @@ -0,0 +1,60 @@ +#pragma once + +#include "string_literal.hpp" +#include "templates.hpp" + +namespace kel { +namespace sch { +struct Void {}; + +struct UnsignedInteger {}; +struct SignedInteger {}; +struct FloatingPoint {}; + +template +struct MixedPrecision { + using Meta = Void; + using StorageType = StorageT; + using InterfaceType = InterfaceT; +}; + +template +struct Primitive { + using Meta = Void; + using StorageType = PrimType; + using InterfaceType = PrimType; + static constexpr uint64_t Bytes = N; +}; + +template +struct FixedArray { + using Meta = Void; + using Inner = T; + static constexpr std::array Dimensions{Dims...}; +}; + +template +struct Array { + using Meta = FixedArray; + using Inner = T; + static constexpr std::array Dimensions{Dims}; +}; + +template +struct Tuple { +}; + +template +struct Member {}; + +template +struct Struct {}; + +} + +template +struct schema { + using Type = Sch; +}; + +} -- cgit v1.2.3