Chrysalis - Pattern
Toggle main menu visibility
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
9
namespace
Chrysalis
{
10
template
<
typename
T>
11
class
Argument
:
public
BaseArgument
<T> {
12
PROVIDE_SERIALIZATION_ACCESS_T
(
Argument
)
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
};
25
SERIALIZE_DERIVED_CONSTRUCTION_T
(
Argument
,
BaseArgument
, value_)
26
namespace
args
{
27
using
name
= std::unique_ptr<Argument<std::string>>;
28
}
29
}
30
31
32
#endif
// CHRYSALIS_BASEVALIDARGUMENT_H
BaseArgument.h
Chrysalis::Argument
Definition
Argument.h:11
Chrysalis::Argument::Argument
Argument(const T &value)
Definition
Argument.h:14
Chrysalis::Argument::get
std::expected< T, Error > get() const override
Definition
Argument.h:16
Chrysalis::Argument::set
void set(const T &value)
Definition
Argument.h:19
Chrysalis::BaseArgument
Definition
BaseArgument.h:15
Chrysalis::BaseArgument::BaseArgument
BaseArgument()=default
Chrysalis::args
Definition
Argument.h:26
Chrysalis::args::name
std::unique_ptr< Argument< std::string > > name
Definition
Argument.h:27
Chrysalis
Definition
Argument.h:9
SERIALIZE_DERIVED_CONSTRUCTION_T
#define SERIALIZE_DERIVED_CONSTRUCTION_T(Class, Base,...)
Definition
serialization.h:131
PROVIDE_SERIALIZATION_ACCESS_T
#define PROVIDE_SERIALIZATION_ACCESS_T(Class)
Definition
serialization.h:37
pattern
include
arguments
Argument.h
Generated by
1.17.0