#ifndef CHAOS_HASH_HASH_HPP #define CHAOS_HASH_HASH_HPP #include namespace Chaos::Hash { template class Hash { public: auto GetRawDigest() const { return Impl().GetRawDigest(); } std::string ToHexString() const { return Impl().ToHexString(); } private: const T & Impl() const { return static_cast(*this); } T & Impl() { return static_cast(*this); } }; } // namespace Chaos::Hash #endif