ttx 0.1.0
Loading...
Searching...
No Matches
osc_8.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/container/tree/tree_map.h"
4#include "di/function/container/function_ref.h"
5#include "di/reflect/prelude.h"
8
9namespace ttx::terminal {
13struct OSC8 {
14 di::TreeMap<di::String, di::String> params;
15 di::String uri;
16
17 static auto parse(di::StringView data) -> di::Optional<OSC8>;
18 static auto from_hyperlink(di::Optional<Hyperlink const&> hyperlink) -> OSC8;
19
20 auto serialize() const -> di::String;
21 auto to_hyperlink(di::FunctionRef<di::String(di::Optional<di::StringView>)> make_id) const
22 -> di::Optional<Hyperlink>;
23
24 auto operator==(OSC8 const& other) const -> bool = default;
25
26 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<OSC8>) {
27 return di::make_fields<"OSC8">(di::field<"params", &OSC8::params>, di::field<"uri", &OSC8::uri>);
28 }
29};
30}
Definition capability.h:8
Represents a terminal hyperlink escape sequence.
Definition osc_8.h:13
auto to_hyperlink(di::FunctionRef< di::String(di::Optional< di::StringView >)> make_id) const -> di::Optional< Hyperlink >
Definition osc_8.cpp:54
di::TreeMap< di::String, di::String > params
Definition osc_8.h:14
di::String uri
Definition osc_8.h:15
auto serialize() const -> di::String
Definition osc_8.cpp:45
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< OSC8 >)
Definition osc_8.h:26
static auto from_hyperlink(di::Optional< Hyperlink const & > hyperlink) -> OSC8
Definition osc_8.cpp:35
static auto parse(di::StringView data) -> di::Optional< OSC8 >
Definition osc_8.cpp:8