/* ------------------------------------------- Copyright Mahrouss Logic ------------------------------------------- */ #pragma once #include #include #include namespace HCore { /// This interface is used to make loader contracts (MSCOFF, PEF). class Loader { public: explicit Loader() = default; virtual ~Loader() = default; HCORE_COPY_DEFAULT(Loader); public: virtual const char* Format() = 0; virtual const char* MIME() = 0; virtual const char* Path() = 0; virtual ErrorOr LoadStart() = 0; virtual VoidPtr FindSymbol(const char* name, Int32 kind) = 0; }; } // namespace HCore