38struct IntrinsicTypeDataEditDesc {
39 enum class Kind { I, B, O, Z, F, E, EN, ES, EX, G, L, A, D };
40 IntrinsicTypeDataEditDesc() =
delete;
41 IntrinsicTypeDataEditDesc(IntrinsicTypeDataEditDesc &&) =
default;
42 IntrinsicTypeDataEditDesc &operator=(IntrinsicTypeDataEditDesc &&) =
default;
43 IntrinsicTypeDataEditDesc(Kind &&k, std::optional<int> &&w,
44 std::optional<int> &&d, std::optional<int> &&e)
45 : kind{k}, width{std::move(w)}, digits{std::move(d)}, exponentWidth{
48 std::optional<int> width;
49 std::optional<int> digits;
50 std::optional<int> exponentWidth;
56struct DerivedTypeDataEditDesc {
57 DerivedTypeDataEditDesc() =
delete;
58 DerivedTypeDataEditDesc(DerivedTypeDataEditDesc &&) =
default;
59 DerivedTypeDataEditDesc &operator=(DerivedTypeDataEditDesc &&) =
default;
60 DerivedTypeDataEditDesc(std::string &&t, std::list<std::int64_t> &&p)
61 : type{std::move(t)}, parameters{std::move(p)} {}
63 std::list<std::int64_t> parameters;
76struct ControlEditDesc {
101 ControlEditDesc() =
delete;
102 ControlEditDesc(ControlEditDesc &&) =
default;
103 ControlEditDesc &operator=(ControlEditDesc &&) =
default;
104 explicit ControlEditDesc(Kind k) : kind{k} {}
105 ControlEditDesc(Kind k, std::int64_t ct) : kind{k}, count{ct} {}
106 ControlEditDesc(std::int64_t ct, Kind k) : kind{k}, count{ct} {}
108 std::int64_t count{1};
117 FormatItem() =
delete;
118 FormatItem(FormatItem &&) =
default;
119 FormatItem &operator=(FormatItem &&) =
default;
120 template <
typename A,
typename = common::NoLvalue<A>>
121 FormatItem(std::optional<std::uint64_t> &&r, A &&x)
122 : repeatCount{std::move(r)}, u{std::move(x)} {}
123 template <
typename A,
typename = common::NoLvalue<A>>
124 explicit FormatItem(A &&x) : u{std::move(x)} {}
125 std::optional<std::uint64_t> repeatCount;
135struct FormatSpecification {
136 FormatSpecification() =
delete;
137 FormatSpecification(FormatSpecification &&) =
default;
138 FormatSpecification &operator=(FormatSpecification &&) =
default;
139 explicit FormatSpecification(std::list<FormatItem> &&is)
140 : items(std::move(is)) {}
141 FormatSpecification(std::list<FormatItem> &&is, std::list<FormatItem> &&us)
142 : items(std::move(is)), unlimitedItems(std::move(us)) {}
143 std::list<FormatItem> items, unlimitedItems;