code: func (r *ListFilesRequest) UnmarshalBinary(data []byte) error {
  	buf := bytes.NewBuffer(data)
  
  	err := binary.Read(buf, binary.LittleEndian, &r.Body)
  	if err != nil {
  		return err
  	}
  
  	fields := []struct {
  		len uint32
  		val *string
  	}{
  		{r.Body.GuestPathNameLength, &r.GuestPathName},
  		{r.Body.PatternLength, &r.Pattern},
  	}
  
  	for _, field := range fields {
  		if field.len == 0 {
  			continue
  		}
  
  		x := buf.Next(int(field.len))
  		*field.val = string(bytes.TrimRight(x, "\x00"))
  	}
  
  	return nil
  }
docs: // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface