pub enum DataContract {
V0(DataContractV0),
V1(DataContractV1),
}Expand description
Understanding Data Contract versioning Data contract versioning is both for the code structure and for serialization.
The code structure is what is used in code to verify documents and is used in memory There is generally only one code structure running at any given time, except in the case we are switching protocol versions.
There can be a lot of serialization versions that are active, and serialization versions should generally always be supported. This is because when we store something as version 1. 10 years down the line when we unserialize this contract it will still be in version 1. Deserialization of a data contract serialized in that version should be translated to the current code structure version.
There are some scenarios to consider,
One such scenario is that the serialization version does not contain enough information for the current code structure version.
Depending on the situation one of the following occurs:
- the contract structure can imply missing parts based on default behavior
- the contract structure can disable certain features dependant on missing information
- the contract might be unusable until it is updated by the owner
Variants§
V0(DataContractV0)
V1(DataContractV1)
Implementations§
Source§impl DataContract
impl DataContract
Sourcepub fn generate_data_contract_id_v0(
owner_id: impl AsRef<[u8]>,
identity_nonce: IdentityNonce,
) -> Identifier
pub fn generate_data_contract_id_v0( owner_id: impl AsRef<[u8]>, identity_nonce: IdentityNonce, ) -> Identifier
Generate data contract id based on owner id and identity nonce
Source§impl DataContract
impl DataContract
Sourcepub fn equal_ignoring_time_fields(
&self,
other: &DataContract,
platform_version: &PlatformVersion,
) -> Result<bool, ProtocolError>
pub fn equal_ignoring_time_fields( &self, other: &DataContract, platform_version: &PlatformVersion, ) -> Result<bool, ProtocolError>
Compares two DataContract instances while ignoring time-related fields.
This function checks for equality while excluding:
created_atupdated_atcreated_at_block_heightupdated_at_block_heightcreated_at_epochupdated_at_epoch
§Arguments
other: A reference to anotherDataContractto compare against.
§Returns
trueif all non-time fields match, otherwisefalse.
Source§impl DataContract
impl DataContract
Sourcepub fn registration_cost(
&self,
platform_version: &PlatformVersion,
) -> Result<u64, ProtocolError>
pub fn registration_cost( &self, platform_version: &PlatformVersion, ) -> Result<u64, ProtocolError>
Returns the registration cost of the data contract based on the current platform version and the number of associated search keywords.
This method dispatches to a version-specific implementation based on the platform version configuration. If the version is unrecognized, it returns a version mismatch error.
§Arguments
platform_version: A reference to the platform version, used to determine which registration cost algorithm to apply.
§Returns
Ok(u64): The total registration cost in credits for this contract.Err(ProtocolError): If the platform version is unrecognized or if the fee computation overflows.
§Version Behavior
- Version 0: Always returns
0(used before protocol version 9, ie before 2.0, where registration cost was not charged). - Version 1: Uses a detailed cost model based on document types, indexes, tokens, and keyword count.
Source§impl DataContract
impl DataContract
Sourcepub fn validate_groups(
groups: &BTreeMap<GroupContractPosition, Group>,
platform_version: &PlatformVersion,
) -> Result<SimpleConsensusValidationResult, ProtocolError>
pub fn validate_groups( groups: &BTreeMap<GroupContractPosition, Group>, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>
Validates the provided groups to ensure they meet the requirements for data contracts.
§Parameters
groups: A reference to aBTreeMapof group contract positions (GroupContractPosition) mapped to their correspondingGroupobjects. These represent the groups associated with the data contract.platform_version: A reference to thePlatformVersionobject specifying the version of the platform and determining which validation method to use.
§Returns
Ok(SimpleConsensusValidationResult)if all the groups pass validation:- Group contract positions must be contiguous, i.e., no gaps between positions.
- Each group must meet its individual validation criteria.
Err(ProtocolError)if:- An unknown or unsupported platform version is provided.
- Validation of any group fails.
§Behavior
- Delegates the actual validation logic to the appropriate versioned implementation
(
validate_groups_v0) based on the provided platform version. - If an unknown platform version is encountered, a
ProtocolError::UnknownVersionMismatchis returned.
§Errors
- Returns a
ProtocolError::UnknownVersionMismatchif the platform version is not recognized. - Returns validation errors for:
- Non-contiguous group contract positions (
NonContiguousContractGroupPositionsError). - Invalid individual group configurations (e.g., power-related errors or exceeding member limits).
- Non-contiguous group contract positions (
Source§impl DataContract
impl DataContract
pub fn try_from_platform_versioned( value: DataContractInSerializationFormat, full_validation: bool, validation_operations: &mut Vec<ProtocolValidationOperation>, platform_version: &PlatformVersion, ) -> Result<Self, ProtocolError>
Source§impl DataContract
impl DataContract
pub fn feature_version(&self) -> FeatureVersion
Source§impl DataContract
impl DataContract
pub fn as_v0(&self) -> Option<&DataContractV0>
pub fn as_v0_mut(&mut self) -> Option<&mut DataContractV0>
pub fn into_v0(self) -> Option<DataContractV0>
pub fn as_v1(&self) -> Option<&DataContractV1>
pub fn as_v1_mut(&mut self) -> Option<&mut DataContractV1>
pub fn into_v1(self) -> Option<DataContractV1>
pub fn check_version_is_active( protocol_version: u32, data_contract_system_version: FeatureVersion, ) -> Result<bool, ProtocolError>
pub fn hash( &self, platform_version: &PlatformVersion, ) -> Result<Vec<u8>, ProtocolError>
Trait Implementations§
Source§impl Clone for DataContract
impl Clone for DataContract
Source§fn clone(&self) -> DataContract
fn clone(&self) -> DataContract
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl DataContractDocumentValidationMethodsV0 for DataContract
impl DataContractDocumentValidationMethodsV0 for DataContract
fn validate_document( &self, name: &str, document: &Document, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>
fn validate_document_properties( &self, name: &str, properties: Value, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>
Source§impl DataContractJsonConversionMethodsV0 for DataContract
impl DataContractJsonConversionMethodsV0 for DataContract
fn from_json(
json_value: JsonValue,
full_validation: bool,
platform_version: &PlatformVersion,
) -> Result<Self, ProtocolError>where
Self: Sized,
Source§fn to_json(
&self,
platform_version: &PlatformVersion,
) -> Result<JsonValue, ProtocolError>
fn to_json( &self, platform_version: &PlatformVersion, ) -> Result<JsonValue, ProtocolError>
Source§fn to_validating_json(
&self,
platform_version: &PlatformVersion,
) -> Result<JsonValue, ProtocolError>
fn to_validating_json( &self, platform_version: &PlatformVersion, ) -> Result<JsonValue, ProtocolError>
Source§impl DataContractSchemaMethodsV0 for DataContract
impl DataContractSchemaMethodsV0 for DataContract
fn set_document_schemas( &mut self, schemas: BTreeMap<DocumentName, Value>, defs: Option<BTreeMap<String, Value>>, full_validation: bool, validation_operations: &mut Vec<ProtocolValidationOperation>, platform_version: &PlatformVersion, ) -> Result<(), ProtocolError>
fn set_document_schema( &mut self, name: &str, schema: Value, full_validation: bool, validation_operations: &mut Vec<ProtocolValidationOperation>, platform_version: &PlatformVersion, ) -> Result<(), ProtocolError>
fn document_schemas(&self) -> BTreeMap<DocumentName, &Value>
fn schema_defs(&self) -> Option<&BTreeMap<String, Value>>
fn set_schema_defs( &mut self, defs: Option<BTreeMap<String, Value>>, full_validation: bool, validation_operations: &mut Vec<ProtocolValidationOperation>, platform_version: &PlatformVersion, ) -> Result<(), ProtocolError>
Source§impl DataContractUpdateValidationMethodsV0 for DataContract
impl DataContractUpdateValidationMethodsV0 for DataContract
fn validate_update( &self, data_contract: &DataContract, block_info: &BlockInfo, platform_version: &PlatformVersion, ) -> Result<SimpleConsensusValidationResult, ProtocolError>
Source§impl DataContractV0Getters for DataContract
impl DataContractV0Getters for DataContract
Source§fn id(&self) -> Identifier
fn id(&self) -> Identifier
fn id_ref(&self) -> &Identifier
fn system_version_type(&self) -> u16
Source§fn owner_id(&self) -> Identifier
fn owner_id(&self) -> Identifier
fn document_type_cloned_for_name( &self, name: &str, ) -> Result<DocumentType, DataContractError>
fn document_type_borrowed_for_name( &self, name: &str, ) -> Result<&DocumentType, DataContractError>
Source§fn document_type_for_name(
&self,
name: &str,
) -> Result<DocumentTypeRef<'_>, DataContractError>
fn document_type_for_name( &self, name: &str, ) -> Result<DocumentTypeRef<'_>, DataContractError>
fn document_type_optional_for_name( &self, name: &str, ) -> Option<DocumentTypeRef<'_>>
fn document_type_cloned_optional_for_name( &self, name: &str, ) -> Option<DocumentType>
fn has_document_type_for_name(&self, name: &str) -> bool
fn document_types_with_contested_indexes( &self, ) -> BTreeMap<&DocumentName, &DocumentType>
Source§fn document_types(&self) -> &BTreeMap<DocumentName, DocumentType>
fn document_types(&self) -> &BTreeMap<DocumentName, DocumentType>
Source§fn document_types_mut(&mut self) -> &mut BTreeMap<DocumentName, DocumentType>
fn document_types_mut(&mut self) -> &mut BTreeMap<DocumentName, DocumentType>
Source§fn config(&self) -> &DataContractConfig
fn config(&self) -> &DataContractConfig
Source§fn config_mut(&mut self) -> &mut DataContractConfig
fn config_mut(&mut self) -> &mut DataContractConfig
Source§impl DataContractV0Setters for DataContract
impl DataContractV0Setters for DataContract
Source§fn set_id(&mut self, id: Identifier)
fn set_id(&mut self, id: Identifier)
Source§fn set_version(&mut self, version: u32)
fn set_version(&mut self, version: u32)
fn increment_version(&mut self)
Source§fn set_owner_id(&mut self, owner_id: Identifier)
fn set_owner_id(&mut self, owner_id: Identifier)
Source§fn set_config(&mut self, config: DataContractConfig)
fn set_config(&mut self, config: DataContractConfig)
Source§impl DataContractV1Getters for DataContract
Implementing DataContractV1Getters for DataContract
impl DataContractV1Getters for DataContract
Implementing DataContractV1Getters for DataContract
Source§fn groups(&self) -> &BTreeMap<GroupContractPosition, Group>
fn groups(&self) -> &BTreeMap<GroupContractPosition, Group>
Returns a reference to the groups map.
Source§fn groups_mut(&mut self) -> Option<&mut BTreeMap<GroupContractPosition, Group>>
fn groups_mut(&mut self) -> Option<&mut BTreeMap<GroupContractPosition, Group>>
Returns a mutable reference to the groups map.
Returns None for V0 since it doesn’t have groups.
Source§fn expected_group(
&self,
position: GroupContractPosition,
) -> Result<&Group, ProtocolError>
fn expected_group( &self, position: GroupContractPosition, ) -> Result<&Group, ProtocolError>
Returns a reference to a group or an error. Returns an Error for V0 since it doesn’t have groups.
Source§fn tokens(&self) -> &BTreeMap<TokenContractPosition, TokenConfiguration>
fn tokens(&self) -> &BTreeMap<TokenContractPosition, TokenConfiguration>
Returns a reference to the tokens map.
Source§fn tokens_mut(
&mut self,
) -> Option<&mut BTreeMap<TokenContractPosition, TokenConfiguration>>
fn tokens_mut( &mut self, ) -> Option<&mut BTreeMap<TokenContractPosition, TokenConfiguration>>
Returns a mutable reference to the tokens map.
Returns None for V0 since it doesn’t have tokens.
Source§fn expected_token_configuration(
&self,
position: TokenContractPosition,
) -> Result<&TokenConfiguration, ProtocolError>
fn expected_token_configuration( &self, position: TokenContractPosition, ) -> Result<&TokenConfiguration, ProtocolError>
Returns a mutable reference to a token configuration or an error. Returns an Error for V0 since it doesn’t have tokens.
Source§fn token_configuration_mut(
&mut self,
position: TokenContractPosition,
) -> Option<&mut TokenConfiguration>
fn token_configuration_mut( &mut self, position: TokenContractPosition, ) -> Option<&mut TokenConfiguration>
Returns a mutable reference to a token configuration
Returns None for V0 since it doesn’t have tokens.
Source§fn created_at(&self) -> Option<TimestampMillis>
fn created_at(&self) -> Option<TimestampMillis>
Returns the timestamp in milliseconds when the contract was created.
Source§fn updated_at(&self) -> Option<TimestampMillis>
fn updated_at(&self) -> Option<TimestampMillis>
Returns the timestamp in milliseconds when the contract was last updated.
Source§fn created_at_block_height(&self) -> Option<BlockHeight>
fn created_at_block_height(&self) -> Option<BlockHeight>
Returns the block height at which the contract was created.
Source§fn updated_at_block_height(&self) -> Option<BlockHeight>
fn updated_at_block_height(&self) -> Option<BlockHeight>
Returns the block height at which the contract was last updated.
Source§fn created_at_epoch(&self) -> Option<EpochIndex>
fn created_at_epoch(&self) -> Option<EpochIndex>
Returns the epoch at which the contract was created.
Source§fn updated_at_epoch(&self) -> Option<EpochIndex>
fn updated_at_epoch(&self) -> Option<EpochIndex>
Returns the epoch at which the contract was last updated.
Source§fn token_id(&self, position: TokenContractPosition) -> Option<Identifier>
fn token_id(&self, position: TokenContractPosition) -> Option<Identifier>
Source§fn keywords_mut(&mut self) -> Option<&mut Vec<String>>
fn keywords_mut(&mut self) -> Option<&mut Vec<String>>
Source§fn description(&self) -> Option<&String>
fn description(&self) -> Option<&String>
Source§fn description_mut(&mut self) -> Option<&mut String>
fn description_mut(&mut self) -> Option<&mut String>
Source§impl DataContractV1Setters for DataContract
impl DataContractV1Setters for DataContract
Source§fn set_groups(&mut self, groups: BTreeMap<GroupContractPosition, Group>)
fn set_groups(&mut self, groups: BTreeMap<GroupContractPosition, Group>)
Sets the groups map for the data contract.
Source§fn set_tokens(
&mut self,
tokens: BTreeMap<TokenContractPosition, TokenConfiguration>,
)
fn set_tokens( &mut self, tokens: BTreeMap<TokenContractPosition, TokenConfiguration>, )
Sets the tokens map for the data contract.
Source§fn add_group(&mut self, position: GroupContractPosition, group: Group)
fn add_group(&mut self, position: GroupContractPosition, group: Group)
Adds or updates a single group in the groups map.
Source§fn add_token(&mut self, id: TokenContractPosition, token: TokenConfiguration)
fn add_token(&mut self, id: TokenContractPosition, token: TokenConfiguration)
Adds or updates a single token configuration in the tokens map.
Source§fn set_created_at(&mut self, created_at: Option<TimestampMillis>)
fn set_created_at(&mut self, created_at: Option<TimestampMillis>)
Sets the timestamp in milliseconds when the contract was created.
Source§fn set_updated_at(&mut self, updated_at: Option<TimestampMillis>)
fn set_updated_at(&mut self, updated_at: Option<TimestampMillis>)
Sets the timestamp in milliseconds when the contract was last updated.
Source§fn set_created_at_block_height(&mut self, block_height: Option<BlockHeight>)
fn set_created_at_block_height(&mut self, block_height: Option<BlockHeight>)
Sets the block height at which the contract was created.
Source§fn set_updated_at_block_height(&mut self, block_height: Option<BlockHeight>)
fn set_updated_at_block_height(&mut self, block_height: Option<BlockHeight>)
Sets the block height at which the contract was last updated.
Source§fn set_created_at_epoch(&mut self, epoch: Option<EpochIndex>)
fn set_created_at_epoch(&mut self, epoch: Option<EpochIndex>)
Sets the epoch at which the contract was created.
Source§fn set_updated_at_epoch(&mut self, epoch: Option<EpochIndex>)
fn set_updated_at_epoch(&mut self, epoch: Option<EpochIndex>)
Sets the epoch at which the contract was last updated.
Source§fn set_keywords(&mut self, keywords: Vec<String>)
fn set_keywords(&mut self, keywords: Vec<String>)
Sets the keywords for the contract.
Source§fn set_description(&mut self, description: Option<String>)
fn set_description(&mut self, description: Option<String>)
Sets the description for the contract.
Source§impl DataContractValueConversionMethodsV0 for DataContract
impl DataContractValueConversionMethodsV0 for DataContract
fn from_value( raw_object: Value, full_validation: bool, platform_version: &PlatformVersion, ) -> Result<Self, ProtocolError>
fn to_value( &self, platform_version: &PlatformVersion, ) -> Result<Value, ProtocolError>
fn into_value( self, platform_version: &PlatformVersion, ) -> Result<Value, ProtocolError>
Source§impl Debug for DataContract
impl Debug for DataContract
Source§impl<'de> Deserialize<'de> for DataContract
impl<'de> Deserialize<'de> for DataContract
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>,
Source§impl From<CreatedDataContract> for DataContract
impl From<CreatedDataContract> for DataContract
Source§fn from(value: CreatedDataContract) -> Self
fn from(value: CreatedDataContract) -> Self
Source§impl From<DataContractV0> for DataContract
impl From<DataContractV0> for DataContract
Source§fn from(value: DataContractV0) -> Self
fn from(value: DataContractV0) -> Self
Source§impl From<DataContractV1> for DataContract
impl From<DataContractV1> for DataContract
Source§fn from(value: DataContractV1) -> Self
fn from(value: DataContractV1) -> Self
Source§impl PartialEq for DataContract
impl PartialEq for DataContract
Source§impl PlatformDeserializableWithBytesLenFromVersionedStructure for DataContract
impl PlatformDeserializableWithBytesLenFromVersionedStructure for DataContract
Source§fn versioned_deserialize_with_bytes_len(
data: &[u8],
full_validation: bool,
platform_version: &PlatformVersion,
) -> Result<(Self, usize), ProtocolError>where
Self: Sized,
fn versioned_deserialize_with_bytes_len(
data: &[u8],
full_validation: bool,
platform_version: &PlatformVersion,
) -> Result<(Self, usize), ProtocolError>where
Self: Sized,
Source§impl PlatformDeserializableWithPotentialValidationFromVersionedStructure for DataContract
impl PlatformDeserializableWithPotentialValidationFromVersionedStructure for DataContract
Source§fn versioned_deserialize(
data: &[u8],
full_validation: bool,
platform_version: &PlatformVersion,
) -> Result<Self, ProtocolError>where
Self: Sized,
fn versioned_deserialize(
data: &[u8],
full_validation: bool,
platform_version: &PlatformVersion,
) -> Result<Self, ProtocolError>where
Self: Sized,
Source§impl PlatformLimitDeserializableFromVersionedStructure for DataContract
impl PlatformLimitDeserializableFromVersionedStructure for DataContract
fn versioned_limit_deserialize(
data: &[u8],
platform_version: &PlatformVersion,
) -> Result<Self, ProtocolError>where
Self: Sized,
Source§impl PlatformSerializableWithPlatformVersion for DataContract
impl PlatformSerializableWithPlatformVersion for DataContract
type Error = ProtocolError
Source§fn serialize_to_bytes_with_platform_version(
&self,
platform_version: &PlatformVersion,
) -> Result<Vec<u8>, ProtocolError>
fn serialize_to_bytes_with_platform_version( &self, platform_version: &PlatformVersion, ) -> Result<Vec<u8>, ProtocolError>
Source§fn serialize_consume_to_bytes_with_platform_version(
self,
platform_version: &PlatformVersion,
) -> Result<Vec<u8>, ProtocolError>
fn serialize_consume_to_bytes_with_platform_version( self, platform_version: &PlatformVersion, ) -> Result<Vec<u8>, ProtocolError>
Source§impl Serialize for DataContract
impl Serialize for DataContract
Source§impl TryFrom<StateTransitionProofResult> for DataContract
impl TryFrom<StateTransitionProofResult> for DataContract
Source§type Error = TryIntoError<StateTransitionProofResult>
type Error = TryIntoError<StateTransitionProofResult>
Source§impl TryFromPlatformVersioned<&DataContract> for DataContractInSerializationFormat
impl TryFromPlatformVersioned<&DataContract> for DataContractInSerializationFormat
Source§type Error = ProtocolError
type Error = ProtocolError
Source§fn try_from_platform_versioned(
value: &DataContract,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: &DataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
Source§impl TryFromPlatformVersioned<DataContract> for DataContractCreateTransition
impl TryFromPlatformVersioned<DataContract> for DataContractCreateTransition
Source§type Error = ProtocolError
type Error = ProtocolError
Source§fn try_from_platform_versioned(
value: DataContract,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: DataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
Source§impl TryFromPlatformVersioned<DataContract> for DataContractCreateTransitionV0
impl TryFromPlatformVersioned<DataContract> for DataContractCreateTransitionV0
Source§type Error = ProtocolError
type Error = ProtocolError
Source§fn try_from_platform_versioned(
value: DataContract,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: DataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
Source§impl TryFromPlatformVersioned<DataContract> for DataContractInSerializationFormat
impl TryFromPlatformVersioned<DataContract> for DataContractInSerializationFormat
Source§type Error = ProtocolError
type Error = ProtocolError
Source§fn try_from_platform_versioned(
value: DataContract,
platform_version: &PlatformVersion,
) -> Result<Self, Self::Error>
fn try_from_platform_versioned( value: DataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>
impl StructuralPartialEq for DataContract
Auto Trait Implementations§
impl Freeze for DataContract
impl RefUnwindSafe for DataContract
impl Send for DataContract
impl Sync for DataContract
impl Unpin for DataContract
impl UnwindSafe for DataContract
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<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).
§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
§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.