1*5191bae9SZane Shelley #include <nlohmann/json.hpp>
2*5191bae9SZane Shelley 
3*5191bae9SZane Shelley #include <filesystem>
4*5191bae9SZane Shelley 
5*5191bae9SZane Shelley namespace util
6*5191bae9SZane Shelley {
7*5191bae9SZane Shelley 
8*5191bae9SZane Shelley /**
9*5191bae9SZane Shelley  * @brief Returns a list of files in the given directory, matching the given
10*5191bae9SZane Shelley  *        search string.
11*5191bae9SZane Shelley  * @param i_dirPath     The target directory.
12*5191bae9SZane Shelley  * @param i_matchString Matching search pattern.
13*5191bae9SZane Shelley  * @param o_foundPaths  The returned list of found file paths.
14*5191bae9SZane Shelley  */
15*5191bae9SZane Shelley void findFiles(const std::filesystem::path& i_dirPath,
16*5191bae9SZane Shelley                const std::string& i_matchString,
17*5191bae9SZane Shelley                std::vector<std::filesystem::path>& o_foundPaths);
18*5191bae9SZane Shelley 
19*5191bae9SZane Shelley /**
20*5191bae9SZane Shelley  * @brief  Validates the given JSON file against the given schema.
21*5191bae9SZane Shelley  * @param  i_schema Target schema document.
22*5191bae9SZane Shelley  * @param  i_json   Target JSON file.
23*5191bae9SZane Shelley  * @return True, if validation successful. False, otherwise.
24*5191bae9SZane Shelley  */
25*5191bae9SZane Shelley bool validateJson(const nlohmann::json& i_schema, const nlohmann::json& i_json);
26*5191bae9SZane Shelley 
27*5191bae9SZane Shelley } // namespace util
28