code: func (d *Decoder) VarLen() (val uint32, readBytes uint32, err error) {
  	buf := []byte{}
  	var lastByte bool
  	var n uint32
  
  	for !lastByte {
  		b, err := d.ReadByte()
  		if err != nil {
  			return 0, n, err
  		}
  		buf = append(buf, b)
  		lastByte = (b>>7 == 0x0)
  		n++
  	}
  
  	val, nUsed := DecodeVarint(buf)
  	return val, uint32(nUsed), nil
  }
docs: // VarLen returns the variable length value at the exact parser location.