#pragma once

#include <Core/Common/NonNullPtr.h>

namespace Juliet
{
    struct DynamicLibrary;

    extern JULIET_API DynamicLibrary* LoadDynamicLibrary(const char* filename);
    extern JULIET_API FunctionPtr     LoadFunction(NonNullPtr<DynamicLibrary> lib, const char* functionName);
    extern JULIET_API void            UnloadDynamicLibrary(NonNullPtr<DynamicLibrary> lib);
} // namespace Juliet
