#pragma once #include "storage/model/properties/flags.hpp" #include "storage/model/properties/property_family.hpp" #include "storage/model/properties/property_holder.hpp" template using property_key = typename PropertyFamily::PropertyType::PropertyFamilyKey; // Property Class designated for creation inside the database. Meant for // storage. template class StoredProperty : public PropertyHolder> { // null property family const static class PropertyFamily null_family; public: // NOTE: Needed for properties to return reference on stored property when // they don't cointain searched property. const static class StoredProperty null; using PropertyHolder>::PropertyHolder; template StoredProperty(PropertyFamily &family, P &&property); };