#pragma once #include "command.hpp" namespace big { class bool_command : public command { protected: bool& m_toggle; virtual void execute(const std::vector& args, const std::shared_ptr ctx = std::make_shared()) override; virtual std::optional> parse_args(const std::vector& args, const std::shared_ptr ctx = std::make_shared()) override; public: bool_command(const std::string& name, const std::string& label, const std::string& description, bool& toggle); inline bool& is_enabled() { return m_toggle; } virtual void refresh(){}; virtual void enable() { m_toggle = true; }; virtual void disable() { m_toggle = false; }; }; }