diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/container.cpp | 17 | ||||
| -rw-r--r-- | src/object_type.cpp | 27 | 
2 files changed, 44 insertions, 0 deletions
diff --git a/src/container.cpp b/src/container.cpp new file mode 100644 index 0000000..d906f1e --- /dev/null +++ b/src/container.cpp @@ -0,0 +1,17 @@ +#include "yacppdic/container.hpp" + +#include "yacppdic/detail/internal/wrapper/function_wrapper.hpp" +#include "yacppdic/detail/internal/wrapper/object_wrapper.hpp" + +namespace yacppdic +{ + +void Container::add( +	BaseObjectType type, +	const WrapperPtr<IGenericWrapper> &wrapper +) noexcept +{ +	_bindings.insert({ type, wrapper }); +} + +} // namespace yacppdic 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(); +}  | 
