#ifndef OBJECT_INFO_HPP #define OBJECT_INFO_HPP #include "matador/object/basic_object_info.hpp" #include "matador/object/object_definition.hpp" namespace matador::object { class schema_node; template class object_info final : public basic_object_info { public: explicit object_info(object_definition &&definition, std::shared_ptr &&ref_column) : basic_object_info(typeid(Type), std::move(definition), std::move(ref_column)) { } explicit object_info(schema_node &node, std::shared_ptr &&ref_column) : basic_object_info(typeid(Type), std::move(ref_column)) { } const Type &prototype() const { return prototype_; } private: Type prototype_; }; template using object_info_ref = std::reference_wrapper>; namespace detail { struct null_type { }; } using null_info = object_info; } #endif //OBJECT_INFO_HPP