code: func (s *framedDecoderStream) consumeUntilEOF() error {
  	var buf [4096]byte
  	for {
  		n, err := s.r.Read(buf[:])
  		if err != nil {
  			return err
  		}
  		if n == 0 {
  			return io.EOF
  		}
  		if !s.isValidByteSequence(buf[0:n]) {
  			return ErrTrailingGarbage
  		}
  	}
  }
docs: // consume the stream until we hit an EOF. For all data we consume, make
  // sure that it's a valid byte as far as our underlying decoder is concerned.
  // We might considering clamping down here on the number of characters we're willing
  // to accept after the message is over. But for now, we're quite liberal.