22 auto output =
static_cast<Base*
>(output_untyped);
25 (*output).*member =
true;
45 : m_parse(concrete_parse<member>)
51 , m_boolean(
di::SameAs<
meta::MemberPointerValue<decltype(member)>, bool>) {}
55 return m_parse(base, input);
57 constexpr auto short_name()
const {
return m_short_name; }
58 constexpr auto long_name()
const {
return m_long_name; }
60 constexpr auto required()
const {
return m_required; }
61 constexpr auto boolean()
const {
return m_boolean; }
66 result += di::single(
'-');
67 result += di::single(
'-');
68 result += m_long_name.value();
74 result += di::single(
'-');
75 result += di::single(m_short_name.value());
90 Parse m_parse {
nullptr };
94 bool m_required {
false };
95 bool m_always_succeeds {
false };
96 bool m_boolean {
false };
#define DI_ASSERT(...)
Definition assert_bool.h:7
constexpr auto long_name() const
Definition option.h:58
constexpr auto short_name() const
Definition option.h:57
constexpr auto description() const
Definition option.h:59
constexpr auto short_display_name() const
Definition option.h:72
constexpr auto boolean() const
Definition option.h:61
constexpr auto required() const
Definition option.h:60
constexpr auto display_name() const
Definition option.h:79
constexpr auto parse(void *base, Optional< TransparentStringView > input) const
Definition option.h:53
constexpr Option(Constexpr< member >, Optional< char > short_name={}, Optional< TransparentStringView > long_name={}, StringView description={}, bool required=false, bool always_succeeds=false)
Definition option.h:42
constexpr auto long_display_name() const
Definition option.h:64
constexpr auto always_succeeds() const
Definition option.h:62
Definition optional_forward_declaration.h:5
#define DI_TRY(...)
Definition monad_try.h:13
string::StringViewImpl< string::Utf8Encoding > StringView
Definition string_view.h:12
string::StringImpl< string::TransparentEncoding > TransparentString
Definition string.h:12
constexpr auto parse
Definition parse.h:23
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9