// Copyright (c) 2020-now by the Zeek Project. See LICENSE for details. #pragma once #include #include #include #include #include namespace hilti { /** Represents an identifier. */ class ID : public detail::IDBase { public: using IDBase::IDBase; }; inline std::ostream& operator<<(std::ostream& out, const ID& id) { out << std::string(id); return out; } } // namespace hilti namespace std { template<> struct hash { std::size_t operator()(const hilti::ID& id) const { return hash()(id); } }; } // namespace std