#ifndef MENU_H_3F6E62B3 #define MENU_H_3F6E62B3 #include #include #include enum class MenuType { Command }; struct MenuItem { MenuType type = MenuType::Command; std::string text; }; class MenuBuilder { public: MenuBuilder& Command(std::string text) { result_.type = MenuType::Command; result_.text = std::move(text); return *this; } MenuItem Build() const { return result_; } private: MenuItem result_; }; std::vector CreateMenu(const std::vector& builders); #endif /* end of include guard: MENU_H_3F6E62B3 */