code: func (r *ListFilesRequest) MarshalBinary() ([]byte, error) {
  	var fields []string
  
  	add := func(s string, l *uint32) {
  		if n := len(s); n != 0 {
  			*l = uint32(n) + 1
  			fields = append(fields, s)
  		}
  	}
  
  	add(r.GuestPathName, &r.Body.GuestPathNameLength)
  	add(r.Pattern, &r.Body.PatternLength)
  
  	buf := new(bytes.Buffer)
  
  	_ = binary.Write(buf, binary.LittleEndian, &r.Body)
  
  	for _, val := range fields {
  		_, _ = buf.Write([]byte(val))
  		_ = buf.WriteByte(0)
  	}
  
  	return buf.Bytes(), nil
  }
docs: // MarshalBinary implements the encoding.BinaryMarshaler interface