MCPcopy Create free account
hub / github.com/Koihik/LuaFormatter / readFromFile

Method readFromFile

src/Config.cpp:201–254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

199}
200
201void Config::readFromFile(const std::string& file) {
202 fs::file_status status = fs::status(file);
203 fs::perms perm = status.permissions();
204
205 if (!fs::is_regular_file(status)) {
206 std::cerr << file << ": Not a file." << std::endl;
207 exit(-1);
208 }
209
210 if ((perm & fs::perms::owner_read) == fs::perms::none) {
211 std::cerr << file << ": No access to read." << std::endl;
212 exit(-1);
213 }
214
215 YAML::Node n = YAML::LoadFile(file);
216
217 // Keys are always strings
218 bool given = false;
219 std::string CTL = "column_table_limit";
220 std::string CL = "column_limit";
221 for (const auto& kv : n) {
222 auto key = kv.first.as<std::string>();
223 if (node[key]) {
224 switch (datatype[key]) {
225 case 'i': {
226 auto value = kv.second.as<int>();
227 node[key] = std::any_cast<int>(validators[key](key, value));
228 break;
229 }
230 case 'b': {
231 auto value = kv.second.as<bool>();
232 node[key] = std::any_cast<bool>(validators[key](key, value));
233 break;
234 }
235 case 'c': {
236 auto value = kv.second.as<char>();
237 node[key] = std::any_cast<char>(validators[key](key, value));
238 break;
239 }
240 case 's': {
241 auto value = kv.second.as<std::string>();
242 node[key] = std::any_cast<std::string>(validators[key](key, value));
243 break;
244 }
245 }
246 }
247 if (key == CTL) {
248 given = true;
249 }
250 }
251 if (!given) {
252 node[CTL] = node[CL];
253 }
254}
255
256void Config::readFromMap(std::map<std::string, std::any>& mp) {
257 bool given = false;

Callers 2

test_config.cppFile · 0.80
mainFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected