pub enum MutationV62 {
ObjectStore(ObjectStoreMutationV62),
EncryptedObjectStore(Box<[u8]>),
Allocator(AllocatorMutationV32),
BeginFlush,
EndFlush(u64),
DeleteVolume,
UpdateMutationsKey(UpdateMutationsKey),
CreateInternalDir(u64),
UpdateBorrowed(u64),
}Variants§
ObjectStore(ObjectStoreMutationV62)
EncryptedObjectStore(Box<[u8]>)
Allocator(AllocatorMutationV32)
BeginFlush
Indicates the beginning of a flush. This would typically involve sealing a tree.
EndFlush(u64)
Indicates the end of a flush. This would typically involve replacing the immutable layers
with compacted ones. The u64 records the child store’s new flushed layer borrowing
(store_borrowed, or 0 for full compactions and system objects).
DeleteVolume
Volume has been deleted. Requires we remove it from the set of managed ObjectStore.
UpdateMutationsKey(UpdateMutationsKey)
CreateInternalDir(u64)
UpdateBorrowed(u64)
Legacy < V61 mutation only produced in memory when migrating MutationV59 during journal
replay (#[serde(skip)] prevents serializing or deserializing this variant in V61+
streams). This can be removed once all < V61 versions are removed; it must remain the
last variant so that the serialized variant tags of the preceding variants do not change
when it is removed.
Implementations§
Source§impl MutationV62
impl MutationV62
pub fn insert_object(key: ObjectKey, value: ObjectValue) -> Self
pub fn replace_or_insert_object(key: ObjectKey, value: ObjectValue) -> Self
pub fn merge_object(key: ObjectKey, value: ObjectValue) -> Self
pub fn update_mutations_key(key: FxfsKey) -> Self
Sourcepub fn counts_towards_object_journal_usage(&self) -> bool
pub fn counts_towards_object_journal_usage(&self) -> bool
Returns true if this mutation’s serialized journal bytes should be accounted against the
target object’s per-store journal usage (J_S) rather than system journal usage (J_sys).
Lifecycle control records (BeginFlush, EndFlush, and DeleteVolume) are not written
into an object store’s layer files, and BeginFlush/EndFlush are committed in
Borrowed transactions where apply_mutation transitions
journal_checkpoints and store_borrowed before post-transaction usage accounting runs.
Accounting their bytes in J_sys ensures they do not re-dirty journal_checkpoints or add
post-flush borrowed debt to store_borrowed.
Trait Implementations§
Source§impl Clone for MutationV62
impl Clone for MutationV62
Source§impl Debug for MutationV62
impl Debug for MutationV62
Source§impl<'de> Deserialize<'de> for MutationV62
impl<'de> Deserialize<'de> for MutationV62
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for MutationV62
Source§impl From<MutationV56> for MutationV62
impl From<MutationV56> for MutationV62
Source§fn from(item: MutationV56) -> Self
fn from(item: MutationV56) -> Self
Source§impl From<MutationV57> for MutationV62
impl From<MutationV57> for MutationV62
Source§fn from(item: MutationV57) -> Self
fn from(item: MutationV57) -> Self
Source§impl From<MutationV59> for MutationV62
impl From<MutationV59> for MutationV62
Source§fn from(item: MutationV59) -> Self
fn from(item: MutationV59) -> Self
Source§impl From<MutationV61> for MutationV62
impl From<MutationV61> for MutationV62
Source§fn from(from: MutationV61) -> Self
fn from(from: MutationV61) -> Self
Source§impl Ord for MutationV62
impl Ord for MutationV62
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for MutationV62
impl PartialEq for MutationV62
Source§impl PartialOrd for MutationV62
impl PartialOrd for MutationV62
Source§impl Serialize for MutationV62
impl Serialize for MutationV62
impl StructuralPartialEq for MutationV62
Source§impl TypeFingerprint for MutationV62
impl TypeFingerprint for MutationV62
fn fingerprint() -> String
Source§impl Versioned for MutationV62
impl Versioned for MutationV62
Source§fn max_serialized_size() -> Option<u64>
fn max_serialized_size() -> Option<u64>
fn deserialize_from<R>(reader: &mut R, _version: Version) -> Result<Self>
fn serialize_into<W>(&self, writer: &mut W) -> Result<()>
Source§impl VersionedLatest for MutationV62
impl VersionedLatest for MutationV62
Source§fn deserialize_from_version<R>(reader: &mut R, version: Version) -> Result<Self>
fn deserialize_from_version<R>(reader: &mut R, version: Version) -> Result<Self>
Auto Trait Implementations§
impl Freeze for MutationV62
impl RefUnwindSafe for MutationV62
impl Send for MutationV62
impl Sync for MutationV62
impl Unpin for MutationV62
impl UnsafeUnpin for MutationV62
impl UnwindSafe for MutationV62
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more