

// template <typename Derived>
// class Object {
// public:



//     uint8_t as_uint8(const string& key) = 0;
//     uint16_t as_uint16(const string& key) = 0;
//     uint32_t as_uint32(const string& key) = 0;
//     uint64_t as_uint62(const string& key) = 0;
//     int8_t as_int8(const string& key) = 0;
//     int16_t as_int16(const string& key) = 0;
//     int32_t as_int32(const string& key) = 0;
//     int64_t as_int62(const string& key) = 0;
//     float as_float(const string& key) = 0;
//     double as_double(const string& key) = 0;
//     bool as_bool(const string& key) = 0;
//     string as_string(const string& key) = 0;
//     Object as_object(const string& key) = 0;
// };





