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}