Add default constructor and std::hash to v2/id_types
Reviewers: mferencevic, ipaljak Reviewed By: mferencevic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D2349
This commit is contained in:
parent
7213bec886
commit
02722a1ed5
@ -12,6 +12,9 @@ namespace storage {
|
||||
explicit name(uint64_t id) : id_(id) {} \
|
||||
\
|
||||
public: \
|
||||
/* Default constructor to allow serialization or preallocation. */ \
|
||||
name() = default; \
|
||||
\
|
||||
static name FromUint(uint64_t id) { return name{id}; } \
|
||||
static name FromInt(int64_t id) { \
|
||||
return name{utils::MemcpyCast<uint64_t>(id)}; \
|
||||
@ -51,3 +54,35 @@ STORAGE_DEFINE_ID_TYPE(EdgeTypeId);
|
||||
#undef STORAGE_DEFINE_ID_TYPE
|
||||
|
||||
} // namespace storage
|
||||
|
||||
namespace std {
|
||||
|
||||
template <>
|
||||
struct hash<storage::Gid> {
|
||||
size_t operator()(const storage::Gid &id) const noexcept {
|
||||
return id.AsUint();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct hash<storage::LabelId> {
|
||||
size_t operator()(const storage::LabelId &id) const noexcept {
|
||||
return id.AsUint();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct hash<storage::PropertyId> {
|
||||
size_t operator()(const storage::PropertyId &id) const noexcept {
|
||||
return id.AsUint();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct hash<storage::EdgeTypeId> {
|
||||
size_t operator()(const storage::EdgeTypeId &id) const noexcept {
|
||||
return id.AsUint();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace std
|
||||
|
Loading…
Reference in New Issue
Block a user