#include namespace DB { String toString(ExternalLoaderStatus status) { using Status = ExternalLoaderStatus; switch (status) { case Status::NOT_LOADED: return "NOT_LOADED"; case Status::LOADED: return "LOADED"; case Status::FAILED: return "FAILED"; case Status::LOADING: return "LOADING"; case Status::FAILED_AND_RELOADING: return "FAILED_AND_RELOADING"; case Status::LOADED_AND_RELOADING: return "LOADED_AND_RELOADING"; case Status::NOT_EXIST: return "NOT_EXIST"; } __builtin_unreachable(); } std::vector> getStatusEnumAllPossibleValues() { using Status = ExternalLoaderStatus; return std::vector>{ {toString(Status::NOT_LOADED), static_cast(Status::NOT_LOADED)}, {toString(Status::LOADED), static_cast(Status::LOADED)}, {toString(Status::FAILED), static_cast(Status::FAILED)}, {toString(Status::LOADING), static_cast(Status::LOADING)}, {toString(Status::LOADED_AND_RELOADING), static_cast(Status::LOADED_AND_RELOADING)}, {toString(Status::FAILED_AND_RELOADING), static_cast(Status::FAILED_AND_RELOADING)}, {toString(Status::NOT_EXIST), static_cast(Status::NOT_EXIST)}, }; } std::ostream & operator<<(std::ostream & out, ExternalLoaderStatus status) { return out << toString(status); } }