diff options
| author | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-04-14 21:09:42 +0200 |
|---|---|---|
| committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2026-04-14 21:09:42 +0200 |
| commit | c61ba8f8eb86f66915a54551fcc39dfbeab1fad9 (patch) | |
| tree | f3104a4f1834ca66c3593d5e69354a260b337a55 /lib/core/c++ | |
| parent | ebc2e26a1b3498363bb7522c241de2925bb7f627 (diff) | |
| download | libs-lbm-c61ba8f8eb86f66915a54551fcc39dfbeab1fad9.tar.gz | |
Working on meta schema instantiation, because I'm stupid
Diffstat (limited to 'lib/core/c++')
| -rw-r--r-- | lib/core/c++/abstract/data.hpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/lib/core/c++/abstract/data.hpp b/lib/core/c++/abstract/data.hpp index e8f1757..0075718 100644 --- a/lib/core/c++/abstract/data.hpp +++ b/lib/core/c++/abstract/data.hpp @@ -4,28 +4,48 @@ namespace kel { namespace sch { +struct Void {}; + struct UnsignedInteger {}; struct SignedInteger {}; struct FloatingPoint {}; template<typename StorageT, typename InterfaceT> struct MixedPrecision { + using Meta = Void; using StorageType = StorageT; using InterfaceType = InterfaceT; }; template<typename PrimType, uint64_t N> struct Primitive { - using PrimitiveType = PrimType; + using Meta = Void; + using Type = PrimType; static constexpr uint64_t Bytes = N; }; template<typename T, uint64_t... Dims> -struct Array { - using InnerType = T; +struct FixedArray { + using Meta = Void; + using Inner = T; static constexpr std::array<uint64_t,sizeof...(Dims)> Dimensions{Dims...}; }; +template<typename T, uint64_t Dims> +struct Array { + using Meta = FixedArray<UInt64,Dims>; + using Inner = T; + static constexpr std::array<uint64_t,sizeof...(Dims)> Dimensions{Dims}; +}; + +template<typename... T> +struct Tuple { +}; } + +template<typename Sch> +struct schema { + using Type = Sch; +}; } |
