#pragma once #include "schema.hpp" namespace kel { namespace lbm { namespace impl { template struct schema_to_string_helper { static_assert(always_false, "schema_to_string_helper specialization not handled."); static constexpr string_literal apply(){ return {}; } }; template<> struct schema_to_string_helper final { static constexpr string_literal apply(){ return "SignedInteger"; } }; template<> struct schema_to_string_helper final { static constexpr string_literal apply(){ return "UnsignedInteger"; } }; template<> struct schema_to_string_helper final { static constexpr string_literal apply(){ return "FloatingPoint"; } }; template struct schema_to_string_helper> final { static constexpr string_literal apply(){ return "Primitive<"+schema_to_string_helper::apply()+","+N+">"; } }; } template struct schema_to_string{ static constexpr std::string_view value = impl::schema_to_string_helper::apply().view(); }; } }