62 lines
2.0 KiB
Go
62 lines
2.0 KiB
Go
|
package jen
|
||
|
|
||
|
// Options specifies options for the Custom method
|
||
|
type Options struct {
|
||
|
Open string
|
||
|
Close string
|
||
|
Separator string
|
||
|
Multi bool
|
||
|
}
|
||
|
|
||
|
// Custom renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func Custom(options Options, statements ...Code) *Statement {
|
||
|
return newStatement().Custom(options, statements...)
|
||
|
}
|
||
|
|
||
|
// Custom renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func (g *Group) Custom(options Options, statements ...Code) *Statement {
|
||
|
s := Custom(options, statements...)
|
||
|
g.items = append(g.items, s)
|
||
|
return s
|
||
|
}
|
||
|
|
||
|
// Custom renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func (s *Statement) Custom(options Options, statements ...Code) *Statement {
|
||
|
g := &Group{
|
||
|
close: options.Close,
|
||
|
items: statements,
|
||
|
multi: options.Multi,
|
||
|
name: "custom",
|
||
|
open: options.Open,
|
||
|
separator: options.Separator,
|
||
|
}
|
||
|
*s = append(*s, g)
|
||
|
return s
|
||
|
}
|
||
|
|
||
|
// CustomFunc renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func CustomFunc(options Options, f func(*Group)) *Statement {
|
||
|
return newStatement().CustomFunc(options, f)
|
||
|
}
|
||
|
|
||
|
// CustomFunc renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func (g *Group) CustomFunc(options Options, f func(*Group)) *Statement {
|
||
|
s := CustomFunc(options, f)
|
||
|
g.items = append(g.items, s)
|
||
|
return s
|
||
|
}
|
||
|
|
||
|
// CustomFunc renders a customized statement list. Pass in options to specify multi-line, and tokens for open, close, separator.
|
||
|
func (s *Statement) CustomFunc(options Options, f func(*Group)) *Statement {
|
||
|
g := &Group{
|
||
|
close: options.Close,
|
||
|
multi: options.Multi,
|
||
|
name: "custom",
|
||
|
open: options.Open,
|
||
|
separator: options.Separator,
|
||
|
}
|
||
|
f(g)
|
||
|
*s = append(*s, g)
|
||
|
return s
|
||
|
}
|