MCPcopy Create free account
hub / github.com/boostorg/parser / hash_append

Function hash_append

example/json.hpp:920–942  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

918 }
919
920 inline std::size_t hash_append(std::size_t seed, value const & v)
921 {
922 using detail::hash_combine_;
923
924 std::size_t const kind_hash = std::hash<size_t>{}(size_t(v.kind()));
925 switch (v.kind()) {
926 case value_kind::object: return hash_append(kind_hash, get<object>(v));
927 case value_kind::array: return hash_append(kind_hash, get<array>(v));
928 case value_kind::number:
929 return hash_combine_(
930 kind_hash, std::hash<double>{}(get<double>(v)));
931 case value_kind::string:
932 return hash_combine_(
933 kind_hash,
934 std::hash<std::string_view>{}(get<std::string_view>(v)));
935 case value_kind::boolean:
936 return hash_combine_(kind_hash, std::hash<bool>{}(get<bool>(v)));
937 case value_kind::null: return kind_hash;
938 }
939
940 assert(!"Unreachable");
941 return 0;
942 }
943
944 inline std::size_t hash_append(std::size_t seed, object const & o)
945 {

Callers 1

operator()Method · 0.85

Calls 2

hash_combine_Function · 0.70
kindMethod · 0.45

Tested by

no test coverage detected