Enum StorageFlags
pub enum StorageFlags {
SingleEpoch(u16),
MultiEpoch(u16, BTreeMap<u16, u32>),
SingleEpochOwned(u16, [u8; 32]),
MultiEpochOwned(u16, BTreeMap<u16, u32>, [u8; 32]),
}Expand description
Storage flags
Variants§
SingleEpoch(u16)
Single epoch represented as byte 0
MultiEpoch(u16, BTreeMap<u16, u32>)
Multi epoch represented as byte 1
SingleEpochOwned(u16, [u8; 32])
Single epoch owned represented as byte 2
MultiEpochOwned(u16, BTreeMap<u16, u32>, [u8; 32])
Multi epoch owned represented as byte 3
Implementations§
§impl StorageFlags
impl StorageFlags
§impl StorageFlags
impl StorageFlags
§impl StorageFlags
impl StorageFlags
pub fn new_single_epoch(
epoch: u16,
maybe_owner_id: Option<[u8; 32]>,
) -> StorageFlags
pub fn new_single_epoch( epoch: u16, maybe_owner_id: Option<[u8; 32]>, ) -> StorageFlags
Create new single epoch storage flags
pub fn set_owner_id(&mut self, owner_id: [u8; 32])
pub fn set_owner_id(&mut self, owner_id: [u8; 32])
Sets the owner id if we have owned storage flags
pub fn optional_combine_added_bytes(
ours: Option<StorageFlags>,
theirs: StorageFlags,
added_bytes: u32,
merging_owners_strategy: MergingOwnersStrategy,
) -> Result<StorageFlags, StorageFlagsError>
pub fn optional_combine_added_bytes( ours: Option<StorageFlags>, theirs: StorageFlags, added_bytes: u32, merging_owners_strategy: MergingOwnersStrategy, ) -> Result<StorageFlags, StorageFlagsError>
Optional combine added bytes
pub fn optional_combine_removed_bytes(
ours: Option<StorageFlags>,
theirs: StorageFlags,
removed_bytes: &StorageRemovedBytes,
merging_owners_strategy: MergingOwnersStrategy,
) -> Result<StorageFlags, StorageFlagsError>
pub fn optional_combine_removed_bytes( ours: Option<StorageFlags>, theirs: StorageFlags, removed_bytes: &StorageRemovedBytes, merging_owners_strategy: MergingOwnersStrategy, ) -> Result<StorageFlags, StorageFlagsError>
Optional combine removed bytes
pub fn combine_added_bytes(
self,
rhs: StorageFlags,
added_bytes: u32,
merging_owners_strategy: MergingOwnersStrategy,
) -> Result<StorageFlags, StorageFlagsError>
pub fn combine_added_bytes( self, rhs: StorageFlags, added_bytes: u32, merging_owners_strategy: MergingOwnersStrategy, ) -> Result<StorageFlags, StorageFlagsError>
Combine added bytes
pub fn combine_removed_bytes(
self,
rhs: StorageFlags,
removed_bytes: &StorageRemovedBytes,
merging_owners_strategy: MergingOwnersStrategy,
) -> Result<StorageFlags, StorageFlagsError>
pub fn combine_removed_bytes( self, rhs: StorageFlags, removed_bytes: &StorageRemovedBytes, merging_owners_strategy: MergingOwnersStrategy, ) -> Result<StorageFlags, StorageFlagsError>
Combine removed bytes
pub fn base_epoch(&self) -> &u16
pub fn base_epoch(&self) -> &u16
Returns base epoch
pub fn epoch_index_map(&self) -> Option<&BTreeMap<u16, u32>>
pub fn epoch_index_map(&self) -> Option<&BTreeMap<u16, u32>>
Returns epoch index map
pub fn optional_default() -> Option<StorageFlags>
pub fn optional_default() -> Option<StorageFlags>
Returns optional default storage flags
pub fn optional_default_as_ref() -> Option<&'static StorageFlags>
pub fn optional_default_as_ref() -> Option<&'static StorageFlags>
Returns default optional storage flag as ref
pub fn optional_default_as_cow() -> Option<Cow<'static, StorageFlags>>
pub fn optional_default_as_cow() -> Option<Cow<'static, StorageFlags>>
Returns default optional storage flag as ref
pub fn approximate_size(
has_owner_id: bool,
approximate_changes_and_bytes_count: Option<(u16, u8)>,
) -> u32
pub fn approximate_size( has_owner_id: bool, approximate_changes_and_bytes_count: Option<(u16, u8)>, ) -> u32
ApproximateSize
pub fn serialized_size(&self) -> u32
pub fn serialized_size(&self) -> u32
Serialize storage flags
pub fn deserialize_single_epoch(
data: &[u8],
) -> Result<StorageFlags, StorageFlagsError>
pub fn deserialize_single_epoch( data: &[u8], ) -> Result<StorageFlags, StorageFlagsError>
Deserialize single epoch storage flags from bytes
pub fn deserialize_multi_epoch(
data: &[u8],
) -> Result<StorageFlags, StorageFlagsError>
pub fn deserialize_multi_epoch( data: &[u8], ) -> Result<StorageFlags, StorageFlagsError>
Deserialize multi epoch storage flags from bytes
pub fn deserialize_single_epoch_owned(
data: &[u8],
) -> Result<StorageFlags, StorageFlagsError>
pub fn deserialize_single_epoch_owned( data: &[u8], ) -> Result<StorageFlags, StorageFlagsError>
Deserialize single epoch owned storage flags from bytes
pub fn deserialize_multi_epoch_owned(
data: &[u8],
) -> Result<StorageFlags, StorageFlagsError>
pub fn deserialize_multi_epoch_owned( data: &[u8], ) -> Result<StorageFlags, StorageFlagsError>
Deserialize multi epoch owned storage flags from bytes
pub fn deserialize(
data: &[u8],
) -> Result<Option<StorageFlags>, StorageFlagsError>
pub fn deserialize( data: &[u8], ) -> Result<Option<StorageFlags>, StorageFlagsError>
Deserialize storage flags from bytes
pub fn from_slice(
data: &[u8],
) -> Result<Option<StorageFlags>, StorageFlagsError>
pub fn from_slice( data: &[u8], ) -> Result<Option<StorageFlags>, StorageFlagsError>
Creates storage flags from a slice.
pub fn from_element_flags_ref(
data: &Vec<u8>,
) -> Result<Option<StorageFlags>, StorageFlagsError>
pub fn from_element_flags_ref( data: &Vec<u8>, ) -> Result<Option<StorageFlags>, StorageFlagsError>
Creates storage flags from element flags.
pub fn map_some_element_flags_ref(
data: &Option<Vec<u8>>,
) -> Result<Option<StorageFlags>, StorageFlagsError>
pub fn map_some_element_flags_ref( data: &Option<Vec<u8>>, ) -> Result<Option<StorageFlags>, StorageFlagsError>
Create Storage flags from optional element flags ref
pub fn map_cow_some_element_flags_ref(
data: &Option<Vec<u8>>,
) -> Result<Option<Cow<'_, StorageFlags>>, StorageFlagsError>
pub fn map_cow_some_element_flags_ref( data: &Option<Vec<u8>>, ) -> Result<Option<Cow<'_, StorageFlags>>, StorageFlagsError>
Create Storage flags from optional element flags ref
pub fn map_owned_to_element_flags(
maybe_storage_flags: Option<StorageFlags>,
) -> Vec<u8> ⓘ
pub fn map_owned_to_element_flags( maybe_storage_flags: Option<StorageFlags>, ) -> Vec<u8> ⓘ
Map to owned optional element flags
pub fn map_to_some_element_flags(
maybe_storage_flags: Option<&StorageFlags>,
) -> Option<Vec<u8>>
pub fn map_to_some_element_flags( maybe_storage_flags: Option<&StorageFlags>, ) -> Option<Vec<u8>>
Map to optional element flags
pub fn map_cow_to_some_element_flags(
maybe_storage_flags: Option<Cow<'_, StorageFlags>>,
) -> Option<Vec<u8>>
pub fn map_cow_to_some_element_flags( maybe_storage_flags: Option<Cow<'_, StorageFlags>>, ) -> Option<Vec<u8>>
Map to optional element flags
pub fn map_borrowed_cow_to_some_element_flags(
maybe_storage_flags: &Option<Cow<'_, StorageFlags>>,
) -> Option<Vec<u8>>
pub fn map_borrowed_cow_to_some_element_flags( maybe_storage_flags: &Option<Cow<'_, StorageFlags>>, ) -> Option<Vec<u8>>
Map to optional element flags
pub fn to_some_element_flags(&self) -> Option<Vec<u8>>
pub fn to_some_element_flags(&self) -> Option<Vec<u8>>
Creates optional element flags
pub fn to_element_flags(&self) -> Vec<u8> ⓘ
pub fn to_element_flags(&self) -> Vec<u8> ⓘ
Creates element flags.
pub fn split_storage_removed_bytes(
&self,
removed_key_bytes: u32,
removed_value_bytes: u32,
) -> (StorageRemovedBytes, StorageRemovedBytes)
pub fn split_storage_removed_bytes( &self, removed_key_bytes: u32, removed_value_bytes: u32, ) -> (StorageRemovedBytes, StorageRemovedBytes)
split_storage_removed_bytes removes bytes as LIFO
pub fn into_optional_cow<'a>(self) -> Option<Cow<'a, StorageFlags>>
pub fn into_optional_cow<'a>(self) -> Option<Cow<'a, StorageFlags>>
Wrap Storage Flags into optional owned cow
Trait Implementations§
§impl Clone for StorageFlags
impl Clone for StorageFlags
§fn clone(&self) -> StorageFlags
fn clone(&self) -> StorageFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for StorageFlags
impl Debug for StorageFlags
§impl Display for StorageFlags
impl Display for StorageFlags
§impl PartialEq for StorageFlags
impl PartialEq for StorageFlags
impl Eq for StorageFlags
impl StructuralPartialEq for StorageFlags
Auto Trait Implementations§
impl Freeze for StorageFlags
impl RefUnwindSafe for StorageFlags
impl Send for StorageFlags
impl Sync for StorageFlags
impl Unpin for StorageFlags
impl UnwindSafe for StorageFlags
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> CostsExt for T
impl<T> CostsExt for T
§fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>where
Self: Sized,
CostContext object with provided costs.§fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
fn wrap_fn_cost(
self,
f: impl FnOnce(&Self) -> OperationCost,
) -> CostContext<Self>where
Self: Sized,
CostContext object with costs computed using the
value getting wrapped.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
impl<T, U> IntoOnNetwork<U> for Twhere
U: FromOnNetwork<T>,
§fn into_on_network(self, network: Network) -> U
fn into_on_network(self, network: Network) -> U
Calls U::from_on_network(self).
Source§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
Source§fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.