Repository: tikv/tikv
File: components/backup-stream/src/router.rs (Rust)

Code before:
        self.max_ts = self
            .max_ts
            .map_or(Some(file.max_ts), |ts| Some(ts.max(file.max_ts)));
        self.file_groups.push(file);
    }

    fn marshal_to(self) -> Result<Vec<u8>> {
        let mut metadata = Metadata::new();
        metadata.set_file_groups(self.file_groups.into());
        metadata.set_store_id(self.store_id as _);
        metadata.set_resolved_ts(self.min_resolved_ts.unwrap_or_default());
        metadata.set_min_ts(self.min_ts.unwrap_or(0));
        metadata.set_max_ts(self.max_ts.unwrap_or(0));
        metadata.set_meta_version(MetaVersion::V2);

        metadata
            .write_to_bytes()
            .map_err(|err| Error::Other(box_err!("failed to marshal proto: {}", err)))
    }

    fn path_to_meta(&self, min_begin_ts: u64, mut flush_ts: u64) -> String {
        // It is possible flush_ts be set to zero when PD is unavailable.
        // In this scenario, a "tso" from local clock will be synthesised.
        // A special suffix need to be appended to avoid file name collision.
        let suffix = if flush_ts == 0 {
            flush_ts = TimeStamp::compose(TimeStamp::physical_now(), 0).into_inner();
            let uuid = Uuid::new_v4().as_u128();
            format!("-SYNTHETIC{:X}", uuid)
        } else {
            String::new()
        };
        format!(
            "v1/backupmeta/{:016X}-{:016X}-{:016X}-{:016X}{}.meta",
            flush_ts,
            min_begin_ts,
            self.min_ts.unwrap_or_default(),
            self.max_ts.unwrap_or_default(),
            suffix
        )
    }
}

impl DataFile {
    /// create and open a logfile at the path.
    /// Note: if a file with same name exists, would truncate it.
    fn new(local_path: impl AsRef<Path>, files: &Arc<TempFilePool>) -> Result<Self> {
        let sha256 = Hasher::new(MessageDigest::sha256())
            .map_err(|err| Error::Other(box_err!("openssl hasher failed to init: {}", err)))?;
        let inner = files.open_for_write(local_path.as_ref())?;
        Ok(Self {
            min_ts: TimeStamp::max(),

Review comment (suggestion):
The parameter flush_ts is mutated inside the function when it's zero. However, since this is a function parameter with value semantics (u64 is Copy), this mutation only affects the local copy within this function and doesn't cause side effects. While this works correctly, it may be more clear to use a separate variable like `let actual_flush_ts = if flush_ts == 0 { ... } else { flush_ts };` to make the intent more explicit.

Code after:
        self.file_groups.push(file);
    }

    fn marshal_to(self) -> Result<Vec<u8>> {
        let mut metadata = Metadata::new();
        metadata.set_file_groups(self.file_groups.into());
        metadata.set_store_id(self.store_id as _);
        metadata.set_resolved_ts(self.min_resolved_ts.unwrap_or_default());
        metadata.set_min_ts(self.min_ts.unwrap_or(0));
        metadata.set_max_ts(self.max_ts.unwrap_or(0));
        metadata.set_meta_version(MetaVersion::V2);

        metadata
            .write_to_bytes()
            .map_err(|err| Error::Other(box_err!("failed to marshal proto: {}", err)))
    }

    fn path_to_meta(&self, min_begin_ts: u64, flush_ts: u64) -> String {
        // It is possible for flush_ts to be set to zero when PD is unavailable.
        // In this scenario, a "tso" from the local clock will be synthesized.
        // A special suffix needs to be appended to avoid file name collision.
        let mut actual_flush_ts = flush_ts;
        let suffix = if flush_ts == 0 {
            actual_flush_ts = TimeStamp::compose(TimeStamp::physical_now(), 0).into_inner();
            let uuid = Uuid::new_v4().as_u128();
            format!("-SYNTHETIC{:X}", uuid)
        } else {
            String::new()
        };
        format!(
            "v1/backupmeta/{:016X}-{:016X}-{:016X}-{:016X}{}.meta",
            actual_flush_ts,
            min_begin_ts,
            self.min_ts.unwrap_or_default(),
            self.max_ts.unwrap_or_default(),
            suffix
        )
    }
}

impl DataFile {
    /// create and open a logfile at the path.
    /// Note: if a file with same name exists, would truncate it.
    fn new(local_path: impl AsRef<Path>, files: &Arc<TempFilePool>) -> Result<Self> {
        let sha256 = Hasher::new(MessageDigest::sha256())
            .map_err(|err| Error::Other(box_err!("openssl hasher failed to init: {}", err)))?;
        let inner = files.open_for_write(local_path.as_ref())?;
        Ok(Self {
            min_ts: TimeStamp::max(),
            max_ts: TimeStamp::zero(),
            resolved_ts: TimeStamp::zero(),