30class SIMO_PUBLIC InitializationStatus {
32 InitializationStatus(
Module* module,
33 const std::vector<std::string>& error_list);
35 explicit InitializationStatus(
Module* module);
37 static InitializationStatus ok(
Module* module);
39 void add_error(std::string_view new_error);
41 template <
typename... Args>
42 InitializationStatus& emplace_sub_error(Args... args) {
43 sub_errors.emplace_back(args...);
44 success_ &= sub_errors.back().success();
45 return sub_errors.back();
48 [[nodiscard]]
bool success()
const;
50 explicit operator bool()
const;
54 std::vector<std::string> error_list;
55 std::vector<InitializationStatus> sub_errors;
56 bool success_ =
false;