Struct mz_catalog::durable::Transaction
source · pub struct Transaction<'a> { /* private fields */ }
Expand description
A Transaction
batches multiple catalog operations together and commits them atomically.
An operation also logically groups multiple catalog updates together.
Implementations§
source§impl<'a> Transaction<'a>
impl<'a> Transaction<'a>
pub fn new( durable_catalog: &'a mut dyn DurableCatalogState, _: Snapshot ) -> Result<Transaction<'_>, CatalogError>
pub fn get_items(&self) -> impl Iterator<Item = Item>
pub fn insert_audit_log_event(&mut self, event: VersionedEvent)
pub fn insert_audit_log_events( &mut self, events: impl IntoIterator<Item = VersionedEvent> )
pub fn insert_storage_usage_event(&mut self, metric: VersionedStorageUsage)
pub fn insert_storage_usage_events( &mut self, metrics: impl IntoIterator<Item = VersionedStorageUsage> )
pub fn insert_user_database( &mut self, database_name: &str, owner_id: RoleId, privileges: Vec<MzAclItem> ) -> Result<(DatabaseId, u32), CatalogError>
pub fn insert_user_schema( &mut self, database_id: DatabaseId, schema_name: &str, owner_id: RoleId, privileges: Vec<MzAclItem> ) -> Result<(SchemaId, u32), CatalogError>
pub fn insert_builtin_role( &mut self, id: RoleId, name: String, attributes: RoleAttributes, membership: RoleMembership, vars: RoleVars, oid: u32 ) -> Result<RoleId, CatalogError>
pub fn insert_user_role( &mut self, name: String, attributes: RoleAttributes, membership: RoleMembership, vars: RoleVars ) -> Result<(RoleId, u32), CatalogError>
sourcepub fn insert_user_cluster(
&mut self,
cluster_id: ClusterId,
cluster_name: &str,
introspection_source_indexes: Vec<(&'static BuiltinLog, GlobalId)>,
owner_id: RoleId,
privileges: Vec<MzAclItem>,
config: ClusterConfig
) -> Result<Vec<(&'static BuiltinLog, GlobalId, u32)>, CatalogError>
pub fn insert_user_cluster( &mut self, cluster_id: ClusterId, cluster_name: &str, introspection_source_indexes: Vec<(&'static BuiltinLog, GlobalId)>, owner_id: RoleId, privileges: Vec<MzAclItem>, config: ClusterConfig ) -> Result<Vec<(&'static BuiltinLog, GlobalId, u32)>, CatalogError>
Panics if any introspection source id is not a system id
sourcepub fn insert_system_cluster(
&mut self,
cluster_id: ClusterId,
cluster_name: &str,
introspection_source_indexes: Vec<(&'static BuiltinLog, GlobalId)>,
privileges: Vec<MzAclItem>,
owner_id: RoleId,
config: ClusterConfig
) -> Result<Vec<(&'static BuiltinLog, GlobalId, u32)>, CatalogError>
pub fn insert_system_cluster( &mut self, cluster_id: ClusterId, cluster_name: &str, introspection_source_indexes: Vec<(&'static BuiltinLog, GlobalId)>, privileges: Vec<MzAclItem>, owner_id: RoleId, config: ClusterConfig ) -> Result<Vec<(&'static BuiltinLog, GlobalId, u32)>, CatalogError>
Panics if any introspection source id is not a system id
pub fn rename_cluster( &mut self, cluster_id: ClusterId, cluster_name: &str, cluster_to_name: &str ) -> Result<(), CatalogError>
pub fn rename_cluster_replica( &mut self, replica_id: ReplicaId, replica_name: &QualifiedReplica, replica_to_name: &str ) -> Result<(), CatalogError>
pub fn insert_cluster_replica( &mut self, cluster_id: ClusterId, replica_id: ReplicaId, replica_name: &str, config: ReplicaConfig, owner_id: RoleId ) -> Result<(), CatalogError>
sourcepub fn update_introspection_source_index_gids(
&mut self,
mappings: impl Iterator<Item = (ClusterId, impl Iterator<Item = (String, GlobalId, u32)>)>
) -> Result<(), CatalogError>
pub fn update_introspection_source_index_gids( &mut self, mappings: impl Iterator<Item = (ClusterId, impl Iterator<Item = (String, GlobalId, u32)>)> ) -> Result<(), CatalogError>
Updates persisted information about persisted introspection source indexes.
Panics if provided id is not a system id.
pub fn insert_user_item( &mut self, id: GlobalId, schema_id: SchemaId, item_name: &str, create_sql: String, owner_id: RoleId, privileges: Vec<MzAclItem> ) -> Result<u32, CatalogError>
pub fn insert_item( &mut self, id: GlobalId, oid: u32, schema_id: SchemaId, item_name: &str, create_sql: String, owner_id: RoleId, privileges: Vec<MzAclItem> ) -> Result<(), CatalogError>
pub fn get_and_increment_id(&mut self, key: String) -> Result<u64, CatalogError>
pub fn get_and_increment_id_by( &mut self, key: String, amount: u64 ) -> Result<Vec<u64>, CatalogError>
pub fn allocate_system_item_ids( &mut self, amount: u64 ) -> Result<Vec<GlobalId>, CatalogError>
pub fn allocate_user_item_ids( &mut self, amount: u64 ) -> Result<Vec<GlobalId>, CatalogError>
pub fn allocate_system_replica_id(&mut self) -> Result<ReplicaId, CatalogError>
pub fn allocate_audit_log_id(&mut self) -> Result<u64, CatalogError>
sourcepub fn allocate_oid(&mut self) -> Result<u32, CatalogError>
pub fn allocate_oid(&mut self) -> Result<u32, CatalogError>
Allocates a single OID. OIDs can be recycled if they aren’t currently assigned to any object.
pub fn remove_database(&mut self, id: &DatabaseId) -> Result<(), CatalogError>
pub fn remove_schema( &mut self, database_id: &Option<DatabaseId>, schema_id: &SchemaId ) -> Result<(), CatalogError>
pub fn remove_role(&mut self, name: &str) -> Result<(), CatalogError>
pub fn remove_cluster(&mut self, id: ClusterId) -> Result<(), CatalogError>
pub fn remove_cluster_replica( &mut self, id: ReplicaId ) -> Result<(), CatalogError>
sourcepub fn remove_item(&mut self, id: GlobalId) -> Result<(), CatalogError>
pub fn remove_item(&mut self, id: GlobalId) -> Result<(), CatalogError>
Removes item id
from the transaction.
Returns an error if id
is not found.
Runtime is linear with respect to the total number of items in the catalog.
DO NOT call this function in a loop, use Self::remove_items
instead.
sourcepub fn remove_items(
&mut self,
ids: BTreeSet<GlobalId>
) -> Result<(), CatalogError>
pub fn remove_items( &mut self, ids: BTreeSet<GlobalId> ) -> Result<(), CatalogError>
Removes all items in ids
from the transaction.
Returns an error if any id in ids
is not found.
NOTE: On error, there still may be some items removed from the transaction. It is up to the caller to either abort the transaction or commit.
sourcepub fn remove_system_object_mappings(
&mut self,
descriptions: BTreeSet<SystemObjectDescription>
) -> Result<(), CatalogError>
pub fn remove_system_object_mappings( &mut self, descriptions: BTreeSet<SystemObjectDescription> ) -> Result<(), CatalogError>
Removes all system object mappings in descriptions
from the transaction.
Returns an error if any description in descriptions
is not found.
NOTE: On error, there still may be some items removed from the transaction. It is up to the caller to either abort the transaction or commit.
sourcepub fn remove_introspection_source_indexes(
&mut self,
introspection_source_indexes: BTreeSet<(ClusterId, String)>
) -> Result<(), CatalogError>
pub fn remove_introspection_source_indexes( &mut self, introspection_source_indexes: BTreeSet<(ClusterId, String)> ) -> Result<(), CatalogError>
Removes all introspection source indexes in indexes
from the transaction.
Returns an error if any index in indexes
is not found.
NOTE: On error, there still may be some indexes removed from the transaction. It is up to the caller to either abort the transaction or commit.
sourcepub fn update_item(
&mut self,
id: GlobalId,
item: Item
) -> Result<(), CatalogError>
pub fn update_item( &mut self, id: GlobalId, item: Item ) -> Result<(), CatalogError>
Updates item id
in the transaction to item_name
and item
.
Returns an error if id
is not found.
Runtime is linear with respect to the total number of items in the catalog.
DO NOT call this function in a loop, use Self::update_items
instead.
sourcepub fn update_items(
&mut self,
items: BTreeMap<GlobalId, Item>
) -> Result<(), CatalogError>
pub fn update_items( &mut self, items: BTreeMap<GlobalId, Item> ) -> Result<(), CatalogError>
Updates all items with ids matching the keys of items
in the transaction, to the
corresponding value in items
.
Returns an error if any id in items
is not found.
NOTE: On error, there still may be some items updated in the transaction. It is up to the caller to either abort the transaction or commit.
sourcepub fn update_role(
&mut self,
id: RoleId,
role: Role
) -> Result<(), CatalogError>
pub fn update_role( &mut self, id: RoleId, role: Role ) -> Result<(), CatalogError>
Updates role id
in the transaction to role
.
Returns an error if id
is not found.
Runtime is linear with respect to the total number of items in the catalog.
DO NOT call this function in a loop, implement and use some Self::update_roles
instead.
You should model it after Self::update_items
.
sourcepub fn update_roles(
&mut self,
roles: BTreeMap<RoleId, Role>
) -> Result<(), CatalogError>
pub fn update_roles( &mut self, roles: BTreeMap<RoleId, Role> ) -> Result<(), CatalogError>
Updates all Role
s with ids matching the keys of roles
in the transaction, to the
corresponding value in roles
.
Returns an error if any id in roles
is not found.
NOTE: On error, there still may be some roles updated in the transaction. It is up to the caller to either abort the transaction or commit.
sourcepub fn update_system_object_mappings(
&mut self,
mappings: BTreeMap<GlobalId, SystemObjectMapping>
) -> Result<(), CatalogError>
pub fn update_system_object_mappings( &mut self, mappings: BTreeMap<GlobalId, SystemObjectMapping> ) -> Result<(), CatalogError>
Updates persisted mapping from system objects to global IDs and fingerprints. Each element
of mappings
should be (old-global-id, new-system-object-mapping).
Panics if provided id is not a system id.
sourcepub fn update_cluster(
&mut self,
id: ClusterId,
cluster: Cluster
) -> Result<(), CatalogError>
pub fn update_cluster( &mut self, id: ClusterId, cluster: Cluster ) -> Result<(), CatalogError>
Updates cluster id
in the transaction to cluster
.
Returns an error if id
is not found.
Runtime is linear with respect to the total number of clusters in the catalog. DO NOT call this function in a loop.
sourcepub fn update_cluster_replica(
&mut self,
replica_id: ReplicaId,
replica: ClusterReplica
) -> Result<(), CatalogError>
pub fn update_cluster_replica( &mut self, replica_id: ReplicaId, replica: ClusterReplica ) -> Result<(), CatalogError>
Updates cluster replica replica_id
in the transaction to replica
.
Returns an error if replica_id
is not found.
Runtime is linear with respect to the total number of cluster replicas in the catalog. DO NOT call this function in a loop.
sourcepub fn update_database(
&mut self,
id: DatabaseId,
database: Database
) -> Result<(), CatalogError>
pub fn update_database( &mut self, id: DatabaseId, database: Database ) -> Result<(), CatalogError>
Updates database id
in the transaction to database
.
Returns an error if id
is not found.
Runtime is linear with respect to the total number of databases in the catalog. DO NOT call this function in a loop.
sourcepub fn update_schema(
&mut self,
schema_id: SchemaId,
schema: Schema
) -> Result<(), CatalogError>
pub fn update_schema( &mut self, schema_id: SchemaId, schema: Schema ) -> Result<(), CatalogError>
Updates schema schema_id
in the transaction to schema
.
Returns an error if schema_id
is not found.
Runtime is linear with respect to the total number of schemas in the catalog. DO NOT call this function in a loop.
sourcepub fn set_default_privilege(
&mut self,
role_id: RoleId,
database_id: Option<DatabaseId>,
schema_id: Option<SchemaId>,
object_type: ObjectType,
grantee: RoleId,
privileges: Option<AclMode>
) -> Result<(), CatalogError>
pub fn set_default_privilege( &mut self, role_id: RoleId, database_id: Option<DatabaseId>, schema_id: Option<SchemaId>, object_type: ObjectType, grantee: RoleId, privileges: Option<AclMode> ) -> Result<(), CatalogError>
Set persisted default privilege.
DO NOT call this function in a loop, use Self::set_default_privileges
instead.
sourcepub fn set_default_privileges(
&mut self,
default_privileges: Vec<DefaultPrivilege>
) -> Result<(), CatalogError>
pub fn set_default_privileges( &mut self, default_privileges: Vec<DefaultPrivilege> ) -> Result<(), CatalogError>
Set persisted default privileges.
sourcepub fn set_system_privilege(
&mut self,
grantee: RoleId,
grantor: RoleId,
acl_mode: Option<AclMode>
) -> Result<(), CatalogError>
pub fn set_system_privilege( &mut self, grantee: RoleId, grantor: RoleId, acl_mode: Option<AclMode> ) -> Result<(), CatalogError>
Set persisted system privilege.
DO NOT call this function in a loop, use Self::set_system_privileges
instead.
sourcepub fn set_system_privileges(
&mut self,
system_privileges: Vec<MzAclItem>
) -> Result<(), CatalogError>
pub fn set_system_privileges( &mut self, system_privileges: Vec<MzAclItem> ) -> Result<(), CatalogError>
Set persisted system privileges.
pub fn set_catalog_content_version( &mut self, version: String ) -> Result<(), CatalogError>
sourcepub fn insert_introspection_source_indexes(
&mut self,
introspection_source_indexes: Vec<(ClusterId, String, GlobalId)>
) -> Result<Vec<IntrospectionSourceIndex>, CatalogError>
pub fn insert_introspection_source_indexes( &mut self, introspection_source_indexes: Vec<(ClusterId, String, GlobalId)> ) -> Result<Vec<IntrospectionSourceIndex>, CatalogError>
Insert persisted introspection source index.
sourcepub fn set_system_object_mappings(
&mut self,
mappings: Vec<SystemObjectMapping>
) -> Result<(), CatalogError>
pub fn set_system_object_mappings( &mut self, mappings: Vec<SystemObjectMapping> ) -> Result<(), CatalogError>
Set persisted system object mappings.
sourcepub fn set_replicas(
&mut self,
replicas: Vec<ClusterReplica>
) -> Result<(), CatalogError>
pub fn set_replicas( &mut self, replicas: Vec<ClusterReplica> ) -> Result<(), CatalogError>
Set persisted replica.
sourcepub fn set_config(
&mut self,
key: String,
value: Option<u64>
) -> Result<(), CatalogError>
pub fn set_config( &mut self, key: String, value: Option<u64> ) -> Result<(), CatalogError>
Set persisted configuration.
sourcepub fn get_config(&mut self, key: String) -> Option<u64>
pub fn get_config(&mut self, key: String) -> Option<u64>
Get the value of a persisted config.
sourcepub fn set_persist_txn_tables(
&mut self,
value: PersistTxnTablesImpl
) -> Result<(), CatalogError>
pub fn set_persist_txn_tables( &mut self, value: PersistTxnTablesImpl ) -> Result<(), CatalogError>
Updates the catalog persist_txn_tables
“config” value to
match the persist_txn_tables
“system var” value.
These are mirrored so that we can toggle the flag with Launch Darkly, but use it in boot before Launch Darkly is available.
sourcepub fn set_system_config_synced_once(&mut self) -> Result<(), CatalogError>
pub fn set_system_config_synced_once(&mut self) -> Result<(), CatalogError>
Updates the catalog system_config_synced
“config” value to true.
pub fn update_comment( &mut self, object_id: CommentObjectId, sub_component: Option<usize>, comment: Option<String> ) -> Result<(), CatalogError>
pub fn drop_comments( &mut self, object_id: CommentObjectId ) -> Result<Vec<(CommentObjectId, Option<usize>, String)>, CatalogError>
sourcepub fn upsert_system_config(
&mut self,
name: &str,
value: String
) -> Result<(), CatalogError>
pub fn upsert_system_config( &mut self, name: &str, value: String ) -> Result<(), CatalogError>
Upserts persisted system configuration name
to value
.
sourcepub fn remove_system_config(&mut self, name: &str)
pub fn remove_system_config(&mut self, name: &str)
Removes persisted system configuration name
.
sourcepub fn clear_system_configs(&mut self)
pub fn clear_system_configs(&mut self)
Removes all persisted system configurations.
pub fn get_clusters(&self) -> impl Iterator<Item = Cluster>
pub fn get_cluster_replicas(&self) -> impl Iterator<Item = ClusterReplica>
pub fn get_roles(&self) -> impl Iterator<Item = Role>
pub fn get_system_object_mappings( &self ) -> impl Iterator<Item = SystemObjectMapping>
pub fn get_introspection_source_indexes( &mut self, cluster_id: ClusterId ) -> BTreeMap<String, (GlobalId, u32)>
pub fn get_catalog_content_version(&self) -> Option<String>
pub fn get_updates(&self) -> impl Iterator<Item = StateUpdate>
sourcepub fn commit_op(&mut self)
pub fn commit_op(&mut self)
Commit the current operation within the transaction. This does not cause anything to be written durably, but signals to the current transaction that we are moving on to the next operation.
sourcepub async fn commit(self) -> Result<(), CatalogError>
pub async fn commit(self) -> Result<(), CatalogError>
Commits the storage transaction to durable storage. Any error returned indicates the catalog may be in an indeterminate state and needs to be fully re-read before proceeding. In general, this must be fatal to the calling process. We do not panic/halt inside this function itself so that errors can bubble up during initialization.
Trait Implementations§
source§impl<'a> Debug for Transaction<'a>
impl<'a> Debug for Transaction<'a>
source§impl<'a> PartialEq for Transaction<'a>
impl<'a> PartialEq for Transaction<'a>
source§impl StorageTxn<Timestamp> for Transaction<'_>
impl StorageTxn<Timestamp> for Transaction<'_>
source§fn get_collection_metadata(&self) -> BTreeMap<GlobalId, String>
fn get_collection_metadata(&self) -> BTreeMap<GlobalId, String>
source§fn insert_collection_metadata(
&mut self,
metadata: BTreeMap<GlobalId, String>
) -> Result<(), StorageError<Timestamp>>
fn insert_collection_metadata( &mut self, metadata: BTreeMap<GlobalId, String> ) -> Result<(), StorageError<Timestamp>>
source§fn delete_collection_metadata(
&mut self,
ids: BTreeSet<GlobalId>
) -> Vec<(GlobalId, String)>
fn delete_collection_metadata( &mut self, ids: BTreeSet<GlobalId> ) -> Vec<(GlobalId, String)>
source§fn get_unfinalized_shards(&self) -> BTreeSet<String>
fn get_unfinalized_shards(&self) -> BTreeSet<String>
source§fn insert_unfinalized_shards(
&mut self,
s: BTreeSet<String>
) -> Result<(), StorageError<Timestamp>>
fn insert_unfinalized_shards( &mut self, s: BTreeSet<String> ) -> Result<(), StorageError<Timestamp>>
source§fn mark_shards_as_finalized(&mut self, shards: BTreeSet<String>)
fn mark_shards_as_finalized(&mut self, shards: BTreeSet<String>)
source§fn get_persist_txn_shard(&self) -> Option<String>
fn get_persist_txn_shard(&self) -> Option<String>
source§fn write_persist_txn_shard(
&mut self,
shard: String
) -> Result<(), StorageError<Timestamp>>
fn write_persist_txn_shard( &mut self, shard: String ) -> Result<(), StorageError<Timestamp>>
Auto Trait Implementations§
impl<'a> Freeze for Transaction<'a>
impl<'a> !RefUnwindSafe for Transaction<'a>
impl<'a> Send for Transaction<'a>
impl<'a> !Sync for Transaction<'a>
impl<'a> Unpin for Transaction<'a>
impl<'a> !UnwindSafe for Transaction<'a>
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<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
impl<R, O, T> CopyOnto<ConsecutiveOffsetPairs<R, O>> for T
source§fn copy_onto(
self,
target: &mut ConsecutiveOffsetPairs<R, O>
) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
fn copy_onto( self, target: &mut ConsecutiveOffsetPairs<R, O> ) -> <ConsecutiveOffsetPairs<R, O> as Region>::Index
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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 moresource§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 moresource§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
source§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
source§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.source§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.source§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.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<T> Tap for T
impl<T> Tap for T
source§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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.source§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.source§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.source§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.source§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.source§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.source§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.