#pragma once #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 Type = 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 schema { using Type = Sch; }; }