1 #include <maybe/result.hpp>
10 enum class LoadError {
19 if (return_successfully) {
33 return load_names(success)
35 .and_then([](
auto prev_names) {
37 return load_names(
true).map([prev_names](
auto more_names) {
39 copy(prev_names.begin(), prev_names.end(), back_inserter(all));
40 copy(more_names.begin(), more_names.end(), back_inserter(all));
45 .map_err([](
auto err) {
46 if (err == LoadError::FileNotFound) {
47 return string(
"file not found");
49 return string(
"other error");
52 .map([](vector<string> results) {
return results.size(); });
56 auto success_result = run(
true);
58 assert(success_result);
59 assert(success_result.ok_value() == 4);
61 auto error_result = run(
false);
63 assert(!error_result);
64 assert(error_result.err_value() ==
"file not found");