#pragma once #include #include #include #include #include #include namespace theo::recomp { class symbol_table_t { public: symbol_table_t() {} symbol_table_t(const std::vector&& syms); void add_symbol(decomp::symbol_t& sym); void add_symbols(std::vector& syms); std::optional sym_from_hash(std::size_t hash); std::optional sym_from_alloc(std::uintptr_t allocated_at); void update(std::size_t hash, decomp::symbol_t& sym); void update(std::size_t hash, std::uintptr_t allocated_at); void for_each(std::function fn); std::uint32_t size(); private: std::map m_table; }; } // namespace theo::comp