pub struct FileInfo {Show 31 fields
pub volume: String,
pub name: String,
pub version_id: Option<Uuid>,
pub is_latest: bool,
pub deleted: bool,
pub transition_status: String,
pub transitioned_objname: String,
pub transition_tier: String,
pub transition_version_id: Option<Uuid>,
pub transition_version: Option<String>,
pub transition_version_state: TransitionVersionState,
pub expire_restored: bool,
pub data_dir: Option<Uuid>,
pub mod_time: Option<OffsetDateTime>,
pub size: i64,
pub mode: Option<u32>,
pub written_by_version: Option<u64>,
pub metadata: HashMap<String, String>,
pub parts: Vec<ObjectPartInfo>,
pub erasure: ErasureInfo,
pub mark_deleted: bool,
pub replication_state_internal: Option<ReplicationState>,
pub data: Option<Bytes>,
pub num_versions: usize,
pub successor_mod_time: Option<OffsetDateTime>,
pub fresh: bool,
pub idx: usize,
pub checksum: Option<Bytes>,
pub versioned: bool,
pub uses_legacy_checksum: bool,
pub overwrite_tier_free_version_id: Option<Uuid>,
}Fields§
§volume: String§name: String§version_id: Option<Uuid>§is_latest: bool§deleted: bool§transition_status: String§transitioned_objname: String§transition_tier: String§transition_version_id: Option<Uuid>§transition_version: Option<String>§transition_version_state: TransitionVersionState§expire_restored: bool§data_dir: Option<Uuid>§mod_time: Option<OffsetDateTime>§size: i64§mode: Option<u32>§written_by_version: Option<u64>§metadata: HashMap<String, String>§parts: Vec<ObjectPartInfo>§erasure: ErasureInfo§mark_deleted: bool§replication_state_internal: Option<ReplicationState>§data: Option<Bytes>§num_versions: usize§successor_mod_time: Option<OffsetDateTime>§fresh: bool§idx: usize§checksum: Option<Bytes>§versioned: bool§uses_legacy_checksum: boolTrue when version meta was parsed via rmp_serde fallback (legacy format).
overwrite_tier_free_version_id: Option<Uuid>Transient PUT intent for the cleanup owner of a replaced tiered null version. Named-map RPC readers may ignore this field; xl.meta never persists it.
Implementations§
Source§impl FileInfo
impl FileInfo
pub fn new(object: &str, data_blocks: usize, parity_blocks: usize) -> Self
Sourcepub fn validate(
&self,
mode: ValidationMode,
) -> Result<Option<ValidatedErasureLayout>>
pub fn validate( &self, mode: ValidationMode, ) -> Result<Option<ValidatedErasureLayout>>
Validates this metadata for the caller-selected operation boundary and returns the payload erasure layout when one is established.
All modes enforce collection bounds and checksum-to-part associations.
Only ValidationMode::RequireErasure establishes a payload erasure
layout; the other modes cannot be upgraded based on serialized flags and
return None.
Sourcepub fn validate_for_metadata_read(&self) -> Result<()>
pub fn validate_for_metadata_read(&self) -> Result<()>
Validate metadata returned by a disk or peer as a strict tagged union.
Payload entries require complete erasure geometry, including
purge-pending object versions whose replication state sets deleted.
Only entries that are not valid payloads may fall back to the canonical
delete-marker shape, so deleted cannot bypass payload validation.
Sourcepub fn has_valid_metadata_shape(&self) -> bool
pub fn has_valid_metadata_shape(&self) -> bool
Cheap shape check for metadata that already passed
Self::validate_for_metadata_read at its decode boundary.
Sourcepub fn is_canonical_delete_marker(&self) -> bool
pub fn is_canonical_delete_marker(&self) -> bool
Returns whether this is a canonical delete marker rather than an erasure-backed object version in a purge-pending state.
Sourcepub fn is_legacy_indexed_delete_marker(&self) -> bool
pub fn is_legacy_indexed_delete_marker(&self) -> bool
Whether this is a canonical delete marker carrying only the per-disk index assigned by an older rename coordinator.
Sourcepub fn validate_for_erasure_write(&self) -> Result<()>
pub fn validate_for_erasure_write(&self) -> Result<()>
Validates complete metadata before a write fanout assigns its per-disk shard index. An index of zero is treated only as the pending assignment; every other geometry and collection invariant remains mandatory.
Sourcepub fn validate_for_delete_operation(&self) -> Result<()>
pub fn validate_for_delete_operation(&self) -> Result<()>
Validates metadata used to mutate a version list during a delete. Delete-marker creation requires the canonical marker shape; other delete operations do not access payload shards but still validate all collection bounds and checksum-to-part associations before mutation.
Sourcepub fn has_valid_erasure_geometry(&self) -> bool
pub fn has_valid_erasure_geometry(&self) -> bool
Performs the cheap layout check used by quorum selection after a decode
boundary has already called Self::validate.
Sourcepub fn is_valid(&self) -> bool
pub fn is_valid(&self) -> bool
Validates the complete payload metadata shape.
Repeated quorum passes over metadata that was already fully validated
should use Self::has_valid_erasure_geometry instead.
pub fn get_etag(&self) -> Option<String>
pub fn write_quorum(&self, quorum: usize) -> usize
pub fn marshal_msg(&self) -> Result<Vec<u8>>
pub fn unmarshal(buf: &[u8]) -> Result<Self>
pub fn add_object_part( &mut self, num: usize, etag: String, part_size: usize, mod_time: Option<OffsetDateTime>, actual_size: i64, index: Option<Bytes>, checksums: Option<HashMap<String, String>>, )
pub fn to_part_offset(&self, offset: usize) -> Result<(usize, usize)>
pub fn set_healing(&mut self)
Sourcepub fn is_healing(&self) -> bool
pub fn is_healing(&self) -> bool
Reader for the marker Self::set_healing writes: true when this
FileInfo is being committed by the heal path.
pub fn set_tier_free_version_id(&mut self, version_id: &str)
pub fn tier_free_version_id(&self) -> String
pub fn set_tier_free_version(&mut self)
pub fn set_skip_tier_free_version(&mut self)
pub fn skip_tier_free_version(&self) -> bool
pub fn tier_free_version(&self) -> bool
pub fn set_inline_data(&mut self)
pub fn set_data_moved(&mut self)
pub fn acknowledge_data_movement(&mut self)
pub fn set_object_transaction_epoch(&mut self, epoch: Uuid)
Sourcepub fn set_delete_marker_incarnation(&mut self, incarnation: Uuid)
pub fn set_delete_marker_incarnation(&mut self, incarnation: Uuid)
Bind a newly created delete marker to the destination bucket generation.
Sourcepub fn delete_marker_incarnation(&self) -> Option<Uuid>
pub fn delete_marker_incarnation(&self) -> Option<Uuid>
Legacy, malformed, or conflicting stamps cannot authorize marker cleanup.
pub fn object_transaction_epoch(&self) -> Result<Option<Uuid>>
pub fn inline_data(&self) -> bool
Sourcepub fn is_compressed(&self) -> bool
pub fn is_compressed(&self) -> bool
Check if the object is compressed
Sourcepub fn get_data_dir(&self) -> String
pub fn get_data_dir(&self) -> String
Get the data directory for this object
Sourcepub fn read_quorum(&self, dquorum: usize) -> usize
pub fn read_quorum(&self, dquorum: usize) -> usize
Read quorum returns expected read quorum for this FileInfo
Sourcepub fn shallow_copy(&self) -> Self
pub fn shallow_copy(&self) -> Self
Create a shallow copy with minimal information for READ MRF checks
Sourcepub fn transition_info_equals(&self, other: &FileInfo) -> bool
pub fn transition_info_equals(&self, other: &FileInfo) -> bool
Check if transition related information are equal
Sourcepub fn metadata_equals(&self, other: &FileInfo) -> bool
pub fn metadata_equals(&self, other: &FileInfo) -> bool
Check if metadata maps are equal
Sourcepub fn replication_info_equals(&self, other: &FileInfo) -> bool
pub fn replication_info_equals(&self, other: &FileInfo) -> bool
Check if replication related fields are equal