1package aec
2
3// Builder is a lightweight syntax to construct customized ANSI.
4type Builder struct {
5	ANSI ANSI
6}
7
8// EmptyBuilder is an initialized Builder.
9var EmptyBuilder *Builder
10
11// NewBuilder creates a Builder from existing ANSI.
12func NewBuilder(a ...ANSI) *Builder {
13	return &Builder{concat(a)}
14}
15
16// With is a syntax for With.
17func (builder *Builder) With(a ...ANSI) *Builder {
18	return NewBuilder(builder.ANSI.With(a...))
19}
20
21// Up is a syntax for Up.
22func (builder *Builder) Up(n uint) *Builder {
23	return builder.With(Up(n))
24}
25
26// Down is a syntax for Down.
27func (builder *Builder) Down(n uint) *Builder {
28	return builder.With(Down(n))
29}
30
31// Right is a syntax for Right.
32func (builder *Builder) Right(n uint) *Builder {
33	return builder.With(Right(n))
34}
35
36// Left is a syntax for Left.
37func (builder *Builder) Left(n uint) *Builder {
38	return builder.With(Left(n))
39}
40
41// NextLine is a syntax for NextLine.
42func (builder *Builder) NextLine(n uint) *Builder {
43	return builder.With(NextLine(n))
44}
45
46// PreviousLine is a syntax for PreviousLine.
47func (builder *Builder) PreviousLine(n uint) *Builder {
48	return builder.With(PreviousLine(n))
49}
50
51// Column is a syntax for Column.
52func (builder *Builder) Column(col uint) *Builder {
53	return builder.With(Column(col))
54}
55
56// Position is a syntax for Position.
57func (builder *Builder) Position(row, col uint) *Builder {
58	return builder.With(Position(row, col))
59}
60
61// EraseDisplay is a syntax for EraseDisplay.
62func (builder *Builder) EraseDisplay(m EraseMode) *Builder {
63	return builder.With(EraseDisplay(m))
64}
65
66// EraseLine is a syntax for EraseLine.
67func (builder *Builder) EraseLine(m EraseMode) *Builder {
68	return builder.With(EraseLine(m))
69}
70
71// ScrollUp is a syntax for ScrollUp.
72func (builder *Builder) ScrollUp(n int) *Builder {
73	return builder.With(ScrollUp(n))
74}
75
76// ScrollDown is a syntax for ScrollDown.
77func (builder *Builder) ScrollDown(n int) *Builder {
78	return builder.With(ScrollDown(n))
79}
80
81// Save is a syntax for Save.
82func (builder *Builder) Save() *Builder {
83	return builder.With(Save)
84}
85
86// Restore is a syntax for Restore.
87func (builder *Builder) Restore() *Builder {
88	return builder.With(Restore)
89}
90
91// Hide is a syntax for Hide.
92func (builder *Builder) Hide() *Builder {
93	return builder.With(Hide)
94}
95
96// Show is a syntax for Show.
97func (builder *Builder) Show() *Builder {
98	return builder.With(Show)
99}
100
101// Report is a syntax for Report.
102func (builder *Builder) Report() *Builder {
103	return builder.With(Report)
104}
105
106// Bold is a syntax for Bold.
107func (builder *Builder) Bold() *Builder {
108	return builder.With(Bold)
109}
110
111// Faint is a syntax for Faint.
112func (builder *Builder) Faint() *Builder {
113	return builder.With(Faint)
114}
115
116// Italic is a syntax for Italic.
117func (builder *Builder) Italic() *Builder {
118	return builder.With(Italic)
119}
120
121// Underline is a syntax for Underline.
122func (builder *Builder) Underline() *Builder {
123	return builder.With(Underline)
124}
125
126// BlinkSlow is a syntax for BlinkSlow.
127func (builder *Builder) BlinkSlow() *Builder {
128	return builder.With(BlinkSlow)
129}
130
131// BlinkRapid is a syntax for BlinkRapid.
132func (builder *Builder) BlinkRapid() *Builder {
133	return builder.With(BlinkRapid)
134}
135
136// Inverse is a syntax for Inverse.
137func (builder *Builder) Inverse() *Builder {
138	return builder.With(Inverse)
139}
140
141// Conceal is a syntax for Conceal.
142func (builder *Builder) Conceal() *Builder {
143	return builder.With(Conceal)
144}
145
146// CrossOut is a syntax for CrossOut.
147func (builder *Builder) CrossOut() *Builder {
148	return builder.With(CrossOut)
149}
150
151// BlackF is a syntax for BlackF.
152func (builder *Builder) BlackF() *Builder {
153	return builder.With(BlackF)
154}
155
156// RedF is a syntax for RedF.
157func (builder *Builder) RedF() *Builder {
158	return builder.With(RedF)
159}
160
161// GreenF is a syntax for GreenF.
162func (builder *Builder) GreenF() *Builder {
163	return builder.With(GreenF)
164}
165
166// YellowF is a syntax for YellowF.
167func (builder *Builder) YellowF() *Builder {
168	return builder.With(YellowF)
169}
170
171// BlueF is a syntax for BlueF.
172func (builder *Builder) BlueF() *Builder {
173	return builder.With(BlueF)
174}
175
176// MagentaF is a syntax for MagentaF.
177func (builder *Builder) MagentaF() *Builder {
178	return builder.With(MagentaF)
179}
180
181// CyanF is a syntax for CyanF.
182func (builder *Builder) CyanF() *Builder {
183	return builder.With(CyanF)
184}
185
186// WhiteF is a syntax for WhiteF.
187func (builder *Builder) WhiteF() *Builder {
188	return builder.With(WhiteF)
189}
190
191// DefaultF is a syntax for DefaultF.
192func (builder *Builder) DefaultF() *Builder {
193	return builder.With(DefaultF)
194}
195
196// BlackB is a syntax for BlackB.
197func (builder *Builder) BlackB() *Builder {
198	return builder.With(BlackB)
199}
200
201// RedB is a syntax for RedB.
202func (builder *Builder) RedB() *Builder {
203	return builder.With(RedB)
204}
205
206// GreenB is a syntax for GreenB.
207func (builder *Builder) GreenB() *Builder {
208	return builder.With(GreenB)
209}
210
211// YellowB is a syntax for YellowB.
212func (builder *Builder) YellowB() *Builder {
213	return builder.With(YellowB)
214}
215
216// BlueB is a syntax for BlueB.
217func (builder *Builder) BlueB() *Builder {
218	return builder.With(BlueB)
219}
220
221// MagentaB is a syntax for MagentaB.
222func (builder *Builder) MagentaB() *Builder {
223	return builder.With(MagentaB)
224}
225
226// CyanB is a syntax for CyanB.
227func (builder *Builder) CyanB() *Builder {
228	return builder.With(CyanB)
229}
230
231// WhiteB is a syntax for WhiteB.
232func (builder *Builder) WhiteB() *Builder {
233	return builder.With(WhiteB)
234}
235
236// DefaultB is a syntax for DefaultB.
237func (builder *Builder) DefaultB() *Builder {
238	return builder.With(DefaultB)
239}
240
241// Frame is a syntax for Frame.
242func (builder *Builder) Frame() *Builder {
243	return builder.With(Frame)
244}
245
246// Encircle is a syntax for Encircle.
247func (builder *Builder) Encircle() *Builder {
248	return builder.With(Encircle)
249}
250
251// Overline is a syntax for Overline.
252func (builder *Builder) Overline() *Builder {
253	return builder.With(Overline)
254}
255
256// LightBlackF is a syntax for LightBlueF.
257func (builder *Builder) LightBlackF() *Builder {
258	return builder.With(LightBlackF)
259}
260
261// LightRedF is a syntax for LightRedF.
262func (builder *Builder) LightRedF() *Builder {
263	return builder.With(LightRedF)
264}
265
266// LightGreenF is a syntax for LightGreenF.
267func (builder *Builder) LightGreenF() *Builder {
268	return builder.With(LightGreenF)
269}
270
271// LightYellowF is a syntax for LightYellowF.
272func (builder *Builder) LightYellowF() *Builder {
273	return builder.With(LightYellowF)
274}
275
276// LightBlueF is a syntax for LightBlueF.
277func (builder *Builder) LightBlueF() *Builder {
278	return builder.With(LightBlueF)
279}
280
281// LightMagentaF is a syntax for LightMagentaF.
282func (builder *Builder) LightMagentaF() *Builder {
283	return builder.With(LightMagentaF)
284}
285
286// LightCyanF is a syntax for LightCyanF.
287func (builder *Builder) LightCyanF() *Builder {
288	return builder.With(LightCyanF)
289}
290
291// LightWhiteF is a syntax for LightWhiteF.
292func (builder *Builder) LightWhiteF() *Builder {
293	return builder.With(LightWhiteF)
294}
295
296// LightBlackB is a syntax for LightBlackB.
297func (builder *Builder) LightBlackB() *Builder {
298	return builder.With(LightBlackB)
299}
300
301// LightRedB is a syntax for LightRedB.
302func (builder *Builder) LightRedB() *Builder {
303	return builder.With(LightRedB)
304}
305
306// LightGreenB is a syntax for LightGreenB.
307func (builder *Builder) LightGreenB() *Builder {
308	return builder.With(LightGreenB)
309}
310
311// LightYellowB is a syntax for LightYellowB.
312func (builder *Builder) LightYellowB() *Builder {
313	return builder.With(LightYellowB)
314}
315
316// LightBlueB is a syntax for LightBlueB.
317func (builder *Builder) LightBlueB() *Builder {
318	return builder.With(LightBlueB)
319}
320
321// LightMagentaB is a syntax for LightMagentaB.
322func (builder *Builder) LightMagentaB() *Builder {
323	return builder.With(LightMagentaB)
324}
325
326// LightCyanB is a syntax for LightCyanB.
327func (builder *Builder) LightCyanB() *Builder {
328	return builder.With(LightCyanB)
329}
330
331// LightWhiteB is a syntax for LightWhiteB.
332func (builder *Builder) LightWhiteB() *Builder {
333	return builder.With(LightWhiteB)
334}
335
336// Color3BitF is a syntax for Color3BitF.
337func (builder *Builder) Color3BitF(c RGB3Bit) *Builder {
338	return builder.With(Color3BitF(c))
339}
340
341// Color3BitB is a syntax for Color3BitB.
342func (builder *Builder) Color3BitB(c RGB3Bit) *Builder {
343	return builder.With(Color3BitB(c))
344}
345
346// Color8BitF is a syntax for Color8BitF.
347func (builder *Builder) Color8BitF(c RGB8Bit) *Builder {
348	return builder.With(Color8BitF(c))
349}
350
351// Color8BitB is a syntax for Color8BitB.
352func (builder *Builder) Color8BitB(c RGB8Bit) *Builder {
353	return builder.With(Color8BitB(c))
354}
355
356// FullColorF is a syntax for FullColorF.
357func (builder *Builder) FullColorF(r, g, b uint8) *Builder {
358	return builder.With(FullColorF(r, g, b))
359}
360
361// FullColorB is a syntax for FullColorB.
362func (builder *Builder) FullColorB(r, g, b uint8) *Builder {
363	return builder.With(FullColorB(r, g, b))
364}
365
366// RGB3BitF is a syntax for Color3BitF with NewRGB3Bit.
367func (builder *Builder) RGB3BitF(r, g, b uint8) *Builder {
368	return builder.Color3BitF(NewRGB3Bit(r, g, b))
369}
370
371// RGB3BitB is a syntax for Color3BitB with NewRGB3Bit.
372func (builder *Builder) RGB3BitB(r, g, b uint8) *Builder {
373	return builder.Color3BitB(NewRGB3Bit(r, g, b))
374}
375
376// RGB8BitF is a syntax for Color8BitF with NewRGB8Bit.
377func (builder *Builder) RGB8BitF(r, g, b uint8) *Builder {
378	return builder.Color8BitF(NewRGB8Bit(r, g, b))
379}
380
381// RGB8BitB is a syntax for Color8BitB with NewRGB8Bit.
382func (builder *Builder) RGB8BitB(r, g, b uint8) *Builder {
383	return builder.Color8BitB(NewRGB8Bit(r, g, b))
384}
385
386func init() {
387	EmptyBuilder = &Builder{empty}
388}
389