From 1f97ab2ef846462d7a599fbd3ac9415da8f0953b Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 28 Apr 2022 22:01:40 +0200 Subject: build: change to static library --- src/container.cpp | 17 +++++++++++++++++ src/object_type.cpp | 27 +++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/container.cpp create mode 100644 src/object_type.cpp (limited to 'src') 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 &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(); +} -- cgit v1.2.3-18-g5258