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 {
104 ControlEditDesc() =
delete;
105 ControlEditDesc(ControlEditDesc &&) =
default;
106 ControlEditDesc &operator=(ControlEditDesc &&) =
default;
107 explicit ControlEditDesc(Kind k) : kind{k} {}
108 ControlEditDesc(Kind k, std::int64_t ct) : kind{k}, count{ct} {}
109 ControlEditDesc(std::int64_t ct, Kind k) : kind{k}, count{ct} {}
111 std::int64_t count{1};
120 FormatItem() =
delete;
121 FormatItem(FormatItem &&) =
default;
122 FormatItem &operator=(FormatItem &&) =
default;
123 template <
typename A,
typename = common::NoLvalue<A>>
124 FormatItem(std::optional<std::uint64_t> &&r, A &&x)
125 : repeatCount{std::move(r)}, u{std::move(x)} {}
126 template <
typename A,
typename = common::NoLvalue<A>>
127 explicit FormatItem(A &&x) : u{std::move(x)} {}
128 std::optional<std::uint64_t> repeatCount;
138struct FormatSpecification {
139 FormatSpecification() =
delete;
140 FormatSpecification(FormatSpecification &&) =
default;
141 FormatSpecification &operator=(FormatSpecification &&) =
default;
142 explicit FormatSpecification(std::list<FormatItem> &&is)
143 : items(std::move(is)) {}
144 FormatSpecification(std::list<FormatItem> &&is, std::list<FormatItem> &&us)
145 : items(std::move(is)), unlimitedItems(std::move(us)) {}
146 std::list<FormatItem> items, unlimitedItems;