#pragma once #include #include #include #include #include namespace theo::decomp { class symbol_t { public: explicit symbol_t(std::string name, std::uintptr_t offset, std::vector data, coff::section_header_t scn_hdr, std::vector relocs); std::string name() const; std::uintptr_t offset() const; std::uintptr_t allocated_at() const; std::uint32_t size() const; std::vector data() const; void allocated_at(std::uintptr_t allocated_at); std::size_t hash(); static std::size_t hash(const std::string& sym); private: std::string m_name; std::uintptr_t m_offset, m_allocated_at; std::vector m_data; coff::section_header_t m_scn_hdr; std::vector m_relocs; }; } // namespace theo::decomp