builder.go 9.3 KB

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