diff options
Diffstat (limited to 'src/object_type.cpp')
-rw-r--r-- | src/object_type.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/object_type.cpp b/src/object_type.cpp new file mode 100644 index 0000000..4384e37 --- /dev/null +++ b/src/object_type.cpp @@ -0,0 +1,27 @@ +#include "yacppdic/object_type.hpp" + +BaseObjectType::BaseObjectType(const std::type_info &type_info) noexcept + : _type_info(type_info) +{ +} + +auto BaseObjectType::operator==(const BaseObjectType &object_type) const noexcept -> bool +{ + return hash() == object_type.hash(); +} + +auto BaseObjectType::hash() const noexcept -> std::size_t +{ + return _type_info.hash_code(); +} + +auto BaseObjectType::name() const noexcept -> std::string_view +{ + return { _type_info.name() }; +} + +auto ObjectTypeHasher::operator()(const BaseObjectType &object_type) const noexcept + -> std::size_t +{ + return object_type.hash(); +} |