mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-10-09 07:42:21 +03:00
util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL versions, with some new hashing utilities in util/hash.h. The new types ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the ue2_hasher. The header util/ue2_containers.h has been removed, and the flat_set/map containers moved to util/flat_containers.h.
This commit is contained in:
committed by
Matthew Barr
parent
a425bb9b7c
commit
9cf66b6ac9
@@ -206,13 +206,6 @@ bool operator==(const Report &a, const Report &b) {
|
||||
a.topSquashDistance == b.topSquashDistance;
|
||||
}
|
||||
|
||||
inline
|
||||
size_t hash_value(const Report &r) {
|
||||
return hash_all(r.type, r.quashSom, r.minOffset, r.maxOffset, r.minLength,
|
||||
r.ekey, r.offsetAdjust, r.onmatch, r.revNfaIndex,
|
||||
r.somDistance, r.topSquashDistance);
|
||||
}
|
||||
|
||||
static inline
|
||||
Report makeECallback(u32 report, s32 offsetAdjust, u32 ekey) {
|
||||
Report ir(EXTERNAL_CALLBACK, report);
|
||||
@@ -262,6 +255,19 @@ bool isSimpleExhaustible(const Report &ir) {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace ue2
|
||||
|
||||
namespace std {
|
||||
|
||||
template<>
|
||||
struct hash<ue2::Report> {
|
||||
std::size_t operator()(const ue2::Report &r) const {
|
||||
return ue2::hash_all(r.type, r.quashSom, r.minOffset, r.maxOffset,
|
||||
r.minLength, r.ekey, r.offsetAdjust, r.onmatch,
|
||||
r.revNfaIndex, r.somDistance, r.topSquashDistance);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace std
|
||||
|
||||
#endif // UTIL_REPORT_H
|
||||
|
Reference in New Issue
Block a user