Skip to main content

FileInfo

Struct FileInfo 

Source
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: bool

True 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

Source

pub fn new(object: &str, data_blocks: usize, parity_blocks: usize) -> Self

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn get_etag(&self) -> Option<String>

Source

pub fn write_quorum(&self, quorum: usize) -> usize

Source

pub fn marshal_msg(&self) -> Result<Vec<u8>>

Source

pub fn unmarshal(buf: &[u8]) -> Result<Self>

Source

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>>, )

Source

pub fn to_part_offset(&self, offset: usize) -> Result<(usize, usize)>

Source

pub fn set_healing(&mut self)

Source

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.

Source

pub fn set_tier_free_version_id(&mut self, version_id: &str)

Source

pub fn tier_free_version_id(&self) -> String

Source

pub fn set_tier_free_version(&mut self)

Source

pub fn set_skip_tier_free_version(&mut self)

Source

pub fn skip_tier_free_version(&self) -> bool

Source

pub fn tier_free_version(&self) -> bool

Source

pub fn set_inline_data(&mut self)

Source

pub fn set_data_moved(&mut self)

Source

pub fn acknowledge_data_movement(&mut self)

Source

pub fn set_object_transaction_epoch(&mut self, epoch: Uuid)

Source

pub fn set_delete_marker_incarnation(&mut self, incarnation: Uuid)

Bind a newly created delete marker to the destination bucket generation.

Source

pub fn delete_marker_incarnation(&self) -> Option<Uuid>

Legacy, malformed, or conflicting stamps cannot authorize marker cleanup.

Source

pub fn object_transaction_epoch(&self) -> Result<Option<Uuid>>

Source

pub fn inline_data(&self) -> bool

Source

pub fn is_compressed(&self) -> bool

Check if the object is compressed

Source

pub fn is_remote(&self) -> bool

Check if the object is remote (transitioned to another tier)

Source

pub fn get_data_dir(&self) -> String

Get the data directory for this object

Source

pub fn read_quorum(&self, dquorum: usize) -> usize

Read quorum returns expected read quorum for this FileInfo

Source

pub fn shallow_copy(&self) -> Self

Create a shallow copy with minimal information for READ MRF checks

Source

pub fn equals(&self, other: &FileInfo) -> bool

Check if this FileInfo equals another FileInfo

Source

pub fn transition_info_equals(&self, other: &FileInfo) -> bool

Check if transition related information are equal

Source

pub fn metadata_equals(&self, other: &FileInfo) -> bool

Check if metadata maps are equal

Source

pub fn replication_info_equals(&self, other: &FileInfo) -> bool

Check if replication related fields are equal

Source

pub fn version_purge_status(&self) -> VersionPurgeStatusType

Source

pub fn replication_status(&self) -> ReplicationStatusType

Source

pub fn delete_marker_replication_status(&self) -> ReplicationStatusType

Source

pub fn shard_file_size(&self, total_length: i64) -> i64

Source§

impl FileInfo

Source§

impl FileInfo

Source

pub fn hydrate_shard_integrity(&mut self) -> Result<()>

Decode once at the metadata boundary and retain each part’s validated commitment. Reading part n must not reparse a 10,000-part descriptor.

Source

pub fn persist_shard_integrity(&mut self) -> Result<()>

Trait Implementations§

Source§

impl Clone for FileInfo

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FileInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FileInfo

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for FileInfo

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<FileInfo> for FileMetaVersion

Source§

fn from(value: FileInfo) -> Self

Converts to this type from the input type.
Source§

impl From<FileInfo> for MetaObject

Source§

fn from(value: FileInfo) -> Self

Converts to this type from the input type.
Source§

impl From<FileInfo> for MetaDeleteMarker

Source§

fn from(value: FileInfo) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for FileInfo

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for FileInfo

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for FileInfo

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more