code: func Encode(dst, src []byte) int {
  	ret := EncodedLen(len(src))
  	if len(dst) < ret {
  		panic("dst has insufficient length")
  	}
  	dst = dst[:0]
  	whichByte := uint(1)
  	bufByte := byte(0)
  	for _, v := range src {
  		dst = append(dst, bufByte|(v>>whichByte))
  		bufByte = (v&(1<<whichByte) - 1) << (7 - whichByte)
  		if whichByte == 7 {
  			dst = append(dst, bufByte)
  			bufByte = 0
  			whichByte = 0
  		}
  		whichByte++
  	}
  	dst = append(dst, bufByte)
  	return ret
  }
docs: // Encode encodes src into EncodedLen(len(src)) bytes of dst. As a convenience,
  // it returns the number of bytes written to dst, but this value is always
  // EncodedLen(len(src)).
  //
  // Encode implements base128 encoding.