77hash(std::uint64_t v, std::uint64_t seed = 0);
80hash(
const std::string& str);
136 operator()(
const qualified_type_def& t)
const;
139 operator()(
const qualified_type_def* t)
const;
156 operator()(
const reference_type_def& t)
const;
159 operator()(
const reference_type_def* t)
const;
282 operator()(
const union_decl&)
const;
285 operator()(
const union_decl*)
const;
Types of the main internal representation of libabigail.
Abstraction for an array range type, like in Ada, or just for an array dimension like in C or C++.
The base class of both types and declarations.
hash_t combine_hashes(hash_t val1, hash_t val2)
Combine two hash values to produce a third hash value.
hashing::hashing_state get_hashing_state(const type_or_decl_base &tod)
Get the hashing state of an IR node.
void set_hashing_state(const type_or_decl_base &tod, hashing::hashing_state s)
Set the hashing state of an IR node.
hash_t hash(uint64_t v, uint64_t seed)
Hash an integer value and combine it with a hash previously computed.
hashing_state
Enumeration of the different hashing states of an IR node being hashed.
@ HASHING_STARTED_STATE
Hashing started but is not yet finished.
@ HASHING_FINISHED_STATE
Hashing of given IR node started and is now done. If an ABI artifact is in this state,...
@ HASHING_CYCLED_TYPE_STATE
A cycle has been detected in the graph on the current node node.
@ HASHING_SUBTYPE_STATE
Hashing a sub-type while hashing another type.
@ HASHING_NOT_DONE_STATE
No hashing has been done/started.
bool deserialize_hash(const string &input, uint64_t &hash)
Read a string of characters representing a string of hexadecimal digits which itself represents a has...
bool serialize_hash(uint64_t hash, string &output)
Serialiaze a hash value computed using the XH64 algorithm (from the xxhash project) into a string of ...
uint32_t fnv_hash(const std::string &str)
Compute a stable string hash.
bool is_recursive_artefact(const type_or_decl_base &t)
Test if an artifact is recursive.
shared_ptr< method_type > method_type_sptr
Convenience typedef for shared pointer to method_type.
abg_compat::optional< uint64_t > hash_t
The abstraction for an 8 bytes hash value.
shared_ptr< function_type > function_type_sptr
Convenience typedef for a shared pointer on a function_type.
shared_ptr< ptr_to_mbr_type > ptr_to_mbr_type_sptr
Convenience typedef for a shared pointer to a ptr_to_mbr_type.
Toplevel namespace for libabigail.
Hash functor for instances of hash.
hash_t operator()(const array_type_def &t) const
Hashing function for a array_type_def IR node.
Hash functor for instances of subrange_type.
The hashing functor for class_decl::base_spec.
hash_t operator()(const base_spec &t) const
Hashing function for a base_spec IR node.
Hasher for the class_decl type.
hash_t operator()(const class_decl &t) const
Compute a hash for a class_decl.
Hasher for the class_or_union type.
hash_t operator()(const class_or_union &t) const
Compute a hash for a class_or_union.
hash_t operator()(const decl_base &d) const
Hash function for an instance of decl_base.
Hash functor for instances of enum_type_decl.
hash_t operator()(const enum_type_decl &t) const
Hashing function for a enum_type_decl IR node.
The hashing functor for function_type.
hash_t operator()(const function_type &t) const
Hashing function for function_type.
The hashing functor for member_base.
hash_t operator()(const member_base &m) const
Hashing function for a member_base IR node.
Hashing functor for the method_type type.
hash_t operator()(const method_type &t) const
Hashing function for a method_type IR node.
Hash functor for instances of pointer_type_def.
hash_t operator()(const pointer_type_def &t) const
Hashing function for a pointer_type_def IR node.
Hash functor for instances of ptr_to_mbr_type.
hash_t operator()(const ptr_to_mbr_type &t) const
Hashing function for a ptr_to_mbr_type IR node.
Hash functor for instances of qualified_type_def.
hash_t operator()(const qualified_type_def &t) const
Hashing function for a qualified_type_def IR node.
Hash functor for instances of reference_type_def.
hash_t operator()(const reference_type_def &t) const
Hashing function for a reference_type_def IR node.
Hash functor for instances of type_base.
hash_t operator()(const type_base &t) const
The hashing functor for using instances of type_or_decl_base as values in a hash map or set.
Hash functor for instances of type_decl.
hash_t operator()(const type_decl &t) const
Hashing function for a type_decl IR node.
Hash functor for instances of typedef_decl.
hash_t operator()(const typedef_decl &t) const
Hashing function for a typedef_decl IR node.
Hash functor for instances of union_decl type.