github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/graphql/handler/transport/reader.go (about) 1 package transport 2 3 import ( 4 "errors" 5 "io" 6 ) 7 8 type bytesReader struct { 9 s *[]byte 10 i int64 // current reading index 11 prevRune int // index of previous rune; or < 0 12 } 13 14 func (r *bytesReader) Read(b []byte) (n int, err error) { 15 if r.s == nil { 16 return 0, errors.New("byte slice pointer is nil") 17 } 18 if r.i >= int64(len(*r.s)) { 19 return 0, io.EOF 20 } 21 r.prevRune = -1 22 n = copy(b, (*r.s)[r.i:]) 23 r.i += int64(n) 24 return 25 }