LCOV - code coverage report
Current view: top level - json/detail - digest.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 7 7
Test Date: 2025-12-23 17:20:51 Functions: 100.0 % 2 2

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
       3              : //
       4              : // Distributed under the Boost Software License, Version 1.0. (See accompanying
       5              : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       6              : //
       7              : // Official repository: https://github.com/boostorg/json
       8              : //
       9              : 
      10              : #ifndef BOOST_JSON_DETAIL_DIGEST_HPP
      11              : #define BOOST_JSON_DETAIL_DIGEST_HPP
      12              : 
      13              : namespace boost {
      14              : namespace json {
      15              : namespace detail {
      16              : 
      17              : // Calculate salted digest of string
      18              : template<class ForwardIterator>
      19              : std::size_t
      20        10779 : digest(
      21              :     ForwardIterator b,
      22              :     ForwardIterator e,
      23              :     std::size_t salt) noexcept
      24              : {
      25              : #if BOOST_JSON_ARCH == 64
      26        10779 :     std::uint64_t const prime = 0x100000001B3ULL;
      27        10779 :     std::uint64_t hash  = 0xcbf29ce484222325ULL;
      28              : #else
      29              :     std::uint32_t const prime = 0x01000193UL;
      30              :     std::uint32_t hash  = 0x811C9DC5UL;
      31              : #endif
      32        10779 :     hash += salt;
      33        30238 :     for(; b != e; ++b)
      34        19459 :         hash = (*b ^ hash) * prime;
      35        10779 :     return hash;
      36              : }
      37              : 
      38              : } // detail
      39              : } // namespace json
      40              : } // namespace boost
      41              : 
      42              : #endif
        

Generated by: LCOV version 2.1