ttx 0.1.0
Loading...
Searching...
No Matches
terminfo_string.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/reflect/prelude.h"
5
6namespace ttx::terminal {
7struct Capability;
8
16 static auto hex(di::TransparentStringView bytes) -> di::String;
17 static auto unhex(di::StringView hex_string) -> di::Optional<di::TransparentString>;
18
19 di::Optional<di::TransparentString> name {};
20 di::Optional<di::TransparentString> value {};
21
22 auto valid() const { return name.has_value(); }
23
24 static auto from_dcs(DCS const& dcs) -> di::Optional<TerminfoString>;
25 static auto from_capability(Capability const& capability) -> TerminfoString;
26 auto serialize() const -> di::String;
27
28 auto operator==(TerminfoString const& other) const -> bool = default;
29
30 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<TerminfoString>) {
31 return di::make_fields<"TerminfoString">(di::field<"name", &TerminfoString::name>,
32 di::field<"value", &TerminfoString::value>);
33 }
34};
35}
Definition capability.h:8
Definition escape_sequence_parser.h:22
Represents a Termcap capability.
Definition capability.h:10
Terminal response string (for XTGETTCAP)
Definition terminfo_string.h:15
static auto from_dcs(DCS const &dcs) -> di::Optional< TerminfoString >
Definition terminfo_string.cpp:42
di::Optional< di::TransparentString > value
Definition terminfo_string.h:20
static auto from_capability(Capability const &capability) -> TerminfoString
Definition terminfo_string.cpp:75
static auto unhex(di::StringView hex_string) -> di::Optional< di::TransparentString >
Definition terminfo_string.cpp:17
auto serialize() const -> di::String
Definition terminfo_string.cpp:124
auto valid() const
Definition terminfo_string.h:22
di::Optional< di::TransparentString > name
Definition terminfo_string.h:19
static auto hex(di::TransparentStringView bytes) -> di::String
Definition terminfo_string.cpp:9
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< TerminfoString >)
Definition terminfo_string.h:30