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
|
package response
import (
"strconv"
"golang.org/x/exp/slices"
)
type search struct {
seqs []uint32
}
func Search(seqs ...uint32) *search {
slices.Sort(seqs)
return &search{
seqs: seqs,
}
}
func (r *search) Send(s Session) error {
return s.WriteResponse(r.String())
}
func (r *search) String() string {
parts := []string{"*", "SEARCH"}
if len(r.seqs) > 0 {
var seqs []string
for _, seq := range r.seqs {
seqs = append(seqs, strconv.Itoa(int(seq)))
}
parts = append(parts, join(seqs))
}
return join(parts)
}
|