Files
fsh-oop/include/cmd/args/arg_input.hpp
2025-07-29 15:33:17 +02:00

27 lines
634 B
C++

#pragma once
#include <string>
#include <sstream>
#include "cmd/args/arg_base.hpp"
#include "cmd/args/arg_generic.hpp"
namespace fsh {
class ArgInput : public Argument<std::string> {
public:
static std::istream& get(std::shared_ptr<_Argument> a) {
return std::dynamic_pointer_cast<ArgInput>(a)->gstream();
}
ArgInput() {}
virtual void svalue(const std::string& val, const Lexer::TokenType& type) override;
virtual std::istream& gstream();
private:
std::optional<std::stringstream> str;
std::optional<std::ifstream> file;
};
}