1 #pragma once
2 
3 #include <string>
4 #include <string_view>
5 
6 struct _object;
7 typedef struct _object PyObject;
8 
9 namespace hex {
10 
11     namespace prv { class Provider; }
12 
13     class LoaderScript {
14     public:
15         LoaderScript() = delete;
16 
17         static bool processFile(std::string_view scriptPath);
18 
setFilePath(std::string_view filePath)19         static void setFilePath(std::string_view filePath) { LoaderScript::s_filePath = filePath; }
setDataProvider(prv::Provider * provider)20         static void setDataProvider(prv::Provider* provider) { LoaderScript::s_dataProvider = provider; }
21     private:
22         static inline std::string s_filePath;
23         static inline prv::Provider* s_dataProvider;
24 
25         static PyObject* Py_getFilePath(PyObject *self, PyObject *args);
26         static PyObject* Py_addPatch(PyObject *self, PyObject *args);
27         static PyObject* Py_addBookmark(PyObject *self, PyObject *args);
28 
29         static PyObject* Py_addStruct(PyObject *self, PyObject *args);
30         static PyObject* Py_addUnion(PyObject *self, PyObject *args);
31     };
32 
33 }