Added more explicit control over budget in toml_generator example

This commit is contained in:
Mark Gillard 2020-08-14 12:06:34 +03:00
parent 11a0e84ced
commit e19fb41517

View File

@ -9,6 +9,7 @@
*/ */
#include <iostream> #include <iostream>
#include <sstream>
#include <array> #include <array>
#include <ctime> #include <ctime>
#include "utf8_console.h" #include "utf8_console.h"
@ -113,10 +114,16 @@ int main(int argc, char** argv)
init_utf8_console(); init_utf8_console();
srand(static_cast<unsigned int>(time(nullptr))); srand(static_cast<unsigned int>(time(nullptr)));
size_t node_budget = 100u; int node_budget{};
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
if (std::string_view{ argv[i] } == "--many"sv) {
node_budget *= 100u; std::stringstream ss{ argv[i] };
int nodes;
if ((ss >> nodes))
node_budget += nodes;
}
if (node_budget <= 0)
node_budget = 100;
toml::table root; toml::table root;
std::vector<toml::node*> tree; std::vector<toml::node*> tree;
@ -145,6 +152,8 @@ int main(int argc, char** argv)
tree.push_back(new_node); tree.push_back(new_node);
container_min_values = rand(1, 4); container_min_values = rand(1, 4);
in_arr = toml::is_array<decltype(obj)>; in_arr = toml::is_array<decltype(obj)>;
if constexpr (toml::is_array<decltype(obj)>)
tree.back()->as_array()->reserve(static_cast<size_t>(container_min_values));
} }
else else
container_min_values--; container_min_values--;