LCOV - code coverage report
Current view: top level - src/util - hash_type.h (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 17 17 100.0 %
Date: 2026-06-25 07:23:43 Functions: 14 14 100.0 %

          Line data    Source code
       1             : // Copyright (c) 2020-2021 The Bitcoin Core developers
       2             : // Distributed under the MIT software license, see the accompanying
       3             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4             : 
       5             : #ifndef BITCOIN_UTIL_HASH_TYPE_H
       6             : #define BITCOIN_UTIL_HASH_TYPE_H
       7             : 
       8             : template<typename HashType>
       9             : class BaseHash
      10             : {
      11             : protected:
      12             :     HashType m_hash;
      13             : 
      14             : public:
      15      851525 :     BaseHash() : m_hash() {}
      16     1131327 :     explicit BaseHash(const HashType& in) : m_hash(in) {}
      17             : 
      18             :     unsigned char* begin()
      19             :     {
      20             :         return m_hash.begin();
      21             :     }
      22             : 
      23      976402 :     const unsigned char* begin() const
      24             :     {
      25      976402 :         return m_hash.begin();
      26             :     }
      27             : 
      28             :     unsigned char* end()
      29             :     {
      30             :         return m_hash.end();
      31             :     }
      32             : 
      33      976401 :     const unsigned char* end() const
      34             :     {
      35      976401 :         return m_hash.end();
      36             :     }
      37             : 
      38             :     operator std::vector<unsigned char>() const
      39             :     {
      40             :         return std::vector<unsigned char>{m_hash.begin(), m_hash.end()};
      41             :     }
      42             : 
      43      107540 :     std::string ToString() const
      44             :     {
      45      107540 :         return m_hash.ToString();
      46             :     }
      47             : 
      48       65953 :     bool operator==(const BaseHash<HashType>& other) const noexcept
      49             :     {
      50       65953 :         return m_hash == other.m_hash;
      51             :     }
      52             : 
      53           9 :     bool operator!=(const BaseHash<HashType>& other) const noexcept
      54             :     {
      55           9 :         return !(m_hash == other.m_hash);
      56             :     }
      57             : 
      58     3133536 :     bool operator<(const BaseHash<HashType>& other) const noexcept
      59             :     {
      60     3133536 :         return m_hash < other.m_hash;
      61             :     }
      62             : 
      63       13417 :     size_t size() const
      64             :     {
      65       13417 :         return m_hash.size();
      66             :     }
      67             : 
      68             :     unsigned char* data() { return m_hash.data(); }
      69       13417 :     const unsigned char* data() const { return m_hash.data(); }
      70             : };
      71             : 
      72             : #endif // BITCOIN_UTIL_HASH_TYPE_H

Generated by: LCOV version 1.16