Chrysalis - Pattern
Loading...
Searching...
No Matches
Argument.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_BASEVALIDARGUMENT_H
2#define CHRYSALIS_BASEVALIDARGUMENT_H
3
4#include "BaseArgument.h"
5
9namespace Chrysalis {
10 template<typename T>
11 class Argument: public BaseArgument<T> {
13 public:
14 explicit Argument(const T& value): value_(value) {}
15
16 [[nodiscard]] std::expected<T, Error> get() const override {
17 return value_;
18 }
19 void set(const T& value) {
20 value_ = value;
21 }
22 private:
23 T value_;
24 };
26 namespace args {
27 using name = std::unique_ptr<Argument<std::string>>;
28 }
29}
30
31
32#endif // CHRYSALIS_BASEVALIDARGUMENT_H
Definition Argument.h:11
Argument(const T &value)
Definition Argument.h:14
std::expected< T, Error > get() const override
Definition Argument.h:16
void set(const T &value)
Definition Argument.h:19
Definition BaseArgument.h:15
Definition Argument.h:26
std::unique_ptr< Argument< std::string > > name
Definition Argument.h:27
Definition Argument.h:9
#define SERIALIZE_DERIVED_CONSTRUCTION_T(Class, Base,...)
Definition serialization.h:131
#define PROVIDE_SERIALIZATION_ACCESS_T(Class)
Definition serialization.h:37