#pragma once #include "command.hpp" namespace big { class int_command : command { protected: int& m_value; int m_lower_bound; int m_upper_bound; 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: int_command(const std::string& name, const std::string& label, const std::string& description, int& value, int lower_bound, int upper_bound); inline int& get_value() { return m_value; } }; }