/* * Copyright (c) 2021, Gunnar Beutner * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace JS::Bytecode { TYPEDEF_DISTINCT_NUMERIC_GENERAL(size_t, false, true, false, false, false, false, StringTableIndex); class StringTable { AK_MAKE_NONMOVABLE(StringTable); AK_MAKE_NONCOPYABLE(StringTable); public: StringTable() = default; StringTableIndex insert(StringView string); String const& get(StringTableIndex) const; void dump() const; bool is_empty() const { return m_strings.is_empty(); } private: Vector m_strings; }; }