Skip to main content

rusty_cat/presigned/
uploaded_part.rs

1/// Result captured after a presigned part upload succeeds.
2#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
3pub struct PresignedUploadedPart {
4    /// Provider-defined part number.
5    pub part_number: u64,
6    /// Optional provider-specific part identifier, for example Azure block id.
7    pub provider_part_id: Option<String>,
8    /// Start offset in the full file.
9    pub offset: u64,
10    /// Uploaded byte size.
11    pub size: u64,
12    /// Optional ETag returned by providers such as Aliyun OSS/S3.
13    pub etag: Option<String>,
14}
15
16impl PresignedUploadedPart {
17    /// Returns the ETag without surrounding double quotes.
18    pub fn etag_unquoted(&self) -> Option<&str> {
19        self.etag.as_deref().map(|etag| etag.trim_matches('"'))
20    }
21}