Loading [MathJax]/extensions/tex2jax.js
ttx 0.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
osc_7.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/reflect/prelude.h"
4
5namespace ttx::terminal {
14struct OSC7 {
15 constexpr static auto file_scheme = "file://"_tsv;
16 constexpr static auto kitty_scheme = "kitty-shell-cwd://"_tsv;
17
18 di::TransparentString hostname;
19 di::Path path;
20
21 static auto parse(di::TransparentStringView data) -> di::Optional<OSC7>;
22
23 auto clone() const -> OSC7 { return { hostname.clone(), path.clone() }; }
24
25 auto serialize() const -> di::String;
26
27 auto operator==(OSC7 const& other) const -> bool = default;
28
29 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<OSC7>) {
30 return di::make_fields<"OSC7">(di::field<"hostname", &OSC7::hostname>, di::field<"path", &OSC7::path>);
31 }
32};
33}
Definition capability.h:8
Represents a application current working directory report.
Definition osc_7.h:14
static constexpr auto kitty_scheme
Definition osc_7.h:16
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< OSC7 >)
Definition osc_7.h:29
di::TransparentString hostname
Definition osc_7.h:18
auto serialize() const -> di::String
Definition osc_7.cpp:47
static auto parse(di::TransparentStringView data) -> di::Optional< OSC7 >
Definition osc_7.cpp:9
static constexpr auto file_scheme
Definition osc_7.h:15
di::Path path
Definition osc_7.h:19
auto clone() const -> OSC7
Definition osc_7.h:23