MCPcopy
hub / github.com/redis/go-redis / Discard

Method Discard

internal/proto/reader.go:731–768  ·  view source on GitHub ↗

Discard the data represented by line.

(line []byte)

Source from the content-addressed store, hash-verified

729
730// Discard the data represented by line.
731func (r *Reader) Discard(line []byte) (err error) {
732 if len(line) == 0 {
733 return errors.New("redis: invalid line")
734 }
735 switch line[0] {
736 case RespStatus, RespError, RespInt, RespNil, RespFloat, RespBool, RespBigInt:
737 return nil
738 }
739
740 n, err := replyLen(line)
741 if err != nil && err != Nil {
742 return err
743 }
744
745 switch line[0] {
746 case RespBlobError, RespString, RespVerbatim:
747 // +\r\n
748 _, err = r.rd.Discard(n + 2)
749 return err
750 case RespArray, RespSet, RespPush:
751 for i := 0; i < n; i++ {
752 if err = r.DiscardNext(); err != nil {
753 return err
754 }
755 }
756 return nil
757 case RespMap, RespAttr:
758 // Read key & value.
759 for i := 0; i < n*2; i++ {
760 if err = r.DiscardNext(); err != nil {
761 return err
762 }
763 }
764 return nil
765 }
766
767 return fmt.Errorf("redis: can't parse %.100q", line)
768}
769
770func replyLen(line []byte) (n int, err error) {
771 n, err = util.Atoi(line[1:])

Callers 2

ReadLineMethod · 0.95
DiscardNextMethod · 0.95

Calls 3

DiscardNextMethod · 0.95
replyLenFunction · 0.85
DiscardMethod · 0.65

Tested by

no test coverage detected