#pragma once #include #include #include #include #include namespace theo::comp { 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); decomp::symbol_t sym_from_hash(std::size_t hash); decomp::symbol_t 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