std::size_t visitor_hasher::hash(const visitor& v) { std::size_t seed(0); combine(seed, dynamic_cast<const dogen::yarn::element&>(v)); combine(seed, hash_std_list_dogen_yarn_name(v.visits())); combine(seed, hash_boost_optional_dogen_yarn_name(v.parent())); return seed; }
std::size_t concept_hasher::hash(const concept& v) { std::size_t seed(0); combine(seed, dynamic_cast<const dogen::yarn::element&>(v)); combine(seed, hash_std_list_dogen_yarn_attribute(v.all_attributes())); combine(seed, hash_std_list_dogen_yarn_attribute(v.local_attributes())); combine(seed, hash_std_unordered_map_dogen_yarn_name_std_list_dogen_yarn_attribute(v.inherited_attributes())); combine(seed, v.is_immutable()); combine(seed, v.is_fluent()); combine(seed, hash_std_list_dogen_yarn_name(v.refines())); combine(seed, v.is_child()); return seed; }