1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
package response
import (
"fmt"
"strconv"
"github.com/ProtonMail/gluon/imap"
)
type lsub struct {
name, del string
att imap.FlagSet
}
func Lsub() *lsub {
return &lsub{att: imap.NewFlagSet()}
}
func (r *lsub) WithName(name string) *lsub {
r.name = name
return r
}
func (r *lsub) WithDelimiter(del string) *lsub {
r.del = del
return r
}
func (r *lsub) WithAttributes(att imap.FlagSet) *lsub {
r.att.AddFlagSetToSelf(att)
return r
}
func (r *lsub) Send(s Session) error {
return s.WriteResponse(r.String())
}
func (r *lsub) String() string {
del := "NIL"
if r.del != "" {
del = strconv.Quote(r.del)
}
return fmt.Sprintf(`* LSUB (%v) %v %v`, join(r.att.ToSlice()), del, strconv.Quote(r.name))
}
|