code: func (r *ReadEnvironmentVariablesRequest) UnmarshalBinary(data []byte) error {
  	buf := bytes.NewBuffer(data)
  
  	err := binary.Read(buf, binary.LittleEndian, &r.Body)
  	if err != nil {
  		return err
  	}
  
  	for i := 0; i < int(r.Body.NumNames); i++ {
  		env, rerr := buf.ReadString(0)
  		if rerr != nil {
  			return rerr
  		}
  
  		env = env[:len(env)-1] // discard NULL terminator
  		r.Names = append(r.Names, env)
  	}
  
  	return nil
  }
docs: // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface