LCOV - code coverage report
Current view: top level - src/util - hash_type.h (source / functions) Hit Total Coverage
Test: fuzz_coverage.info Lines: 6 22 27.3 %
Date: 2023-09-26 12:08:55 Functions: 4 22 18.2 %

          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           0 :     BaseHash() : m_hash() {}
      16           4 :     explicit BaseHash(const HashType& in) : m_hash(in) {}
      17             : 
      18           0 :     unsigned char* begin()
      19             :     {
      20           0 :         return m_hash.begin();
      21             :     }
      22             : 
      23        7788 :     const unsigned char* begin() const
      24             :     {
      25        7788 :         return m_hash.begin();
      26             :     }
      27             : 
      28             :     unsigned char* end()
      29             :     {
      30             :         return m_hash.end();
      31             :     }
      32             : 
      33           0 :     const unsigned char* end() const
      34             :     {
      35           0 :         return m_hash.end();
      36             :     }
      37             : 
      38           0 :     operator std::vector<unsigned char>() const
      39             :     {
      40           0 :         return std::vector<unsigned char>{m_hash.begin(), m_hash.end()};
      41           0 :     }
      42             : 
      43           0 :     std::string ToString() const
      44             :     {
      45           0 :         return m_hash.ToString();
      46             :     }
      47             : 
      48           0 :     bool operator==(const BaseHash<HashType>& other) const noexcept
      49             :     {
      50           0 :         return m_hash == other.m_hash;
      51             :     }
      52             : 
      53           0 :     bool operator!=(const BaseHash<HashType>& other) const noexcept
      54             :     {
      55           0 :         return !(m_hash == other.m_hash);
      56             :     }
      57             : 
      58           0 :     bool operator<(const BaseHash<HashType>& other) const noexcept
      59             :     {
      60           0 :         return m_hash < other.m_hash;
      61             :     }
      62             : 
      63           3 :     size_t size() const
      64             :     {
      65           3 :         return m_hash.size();
      66             :     }
      67             : 
      68             :     unsigned char* data() { return m_hash.data(); }
      69           1 :     const unsigned char* data() const { return m_hash.data(); }
      70             : };
      71             : 
      72             : #endif // BITCOIN_UTIL_HASH_TYPE_H

Generated by: LCOV version 1.14