/* ======================================== Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. ======================================== */ #ifndef KERNELKIT_ILOADER_H #define KERNELKIT_ILOADER_H #include #include #include #include namespace Kernel { /// @brief This interface is used to make loader contracts (MSCOFF, PEF). /// @author Amlal El Mahrouss class ILoader { public: explicit ILoader() = default; virtual ~ILoader() = default; NE_COPY_DEFAULT(ILoader) public: virtual _Output ErrorOr GetBlob() { return ErrorOr{}; } virtual _Output const Char* AsString() { return ""; } virtual _Output const Char* MIME() { return ""; } virtual _Output const Char* Path() { return ""; } virtual _Output ErrorOr FindStart() { return ErrorOr{}; } virtual _Output ErrorOr FindSymbol(_Input const Char*, _Input Int32) { return ErrorOr{}; } }; } // namespace Kernel #endif