code: func (r *RenameFileRequest) MarshalBinary() ([]byte, error) {
  	var fields []string
  
  	add := func(s string, l *uint32) {
  		*l = uint32(len(s)) // NOTE: NULL byte is not included in the length fields on the wire
  		fields = append(fields, s)
  	}
  
  	add(r.OldPathName, &r.Body.OldPathNameLength)
  	add(r.NewPathName, &r.Body.NewPathNameLength)
  
  	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