Struct mz_compute_types::dataflows::DataflowDescription
source · pub struct DataflowDescription<P, S: 'static = (), T = Timestamp> {
pub source_imports: BTreeMap<GlobalId, (SourceInstanceDesc<S>, bool)>,
pub index_imports: BTreeMap<GlobalId, IndexImport>,
pub objects_to_build: Vec<BuildDesc<P>>,
pub index_exports: BTreeMap<GlobalId, (IndexDesc, RelationType)>,
pub sink_exports: BTreeMap<GlobalId, ComputeSinkDesc<S, T>>,
pub as_of: Option<Antichain<T>>,
pub until: Antichain<T>,
pub initial_storage_as_of: Option<Antichain<T>>,
pub refresh_schedule: Option<RefreshSchedule>,
pub debug_name: String,
pub time_dependence: Option<TimeDependence>,
}
Expand description
A description of a dataflow to construct and results to surface.
Fields§
§source_imports: BTreeMap<GlobalId, (SourceInstanceDesc<S>, bool)>
Sources instantiations made available to the dataflow pair with monotonicity information.
index_imports: BTreeMap<GlobalId, IndexImport>
Indexes made available to the dataflow. (id of index, import)
objects_to_build: Vec<BuildDesc<P>>
Views and indexes to be built and stored in the local context. Objects must be built in the specific order, as there may be dependencies of later objects on prior identifiers.
index_exports: BTreeMap<GlobalId, (IndexDesc, RelationType)>
Indexes to be made available to be shared with other dataflows (id of new index, description of index, relationtype of base source/view/table)
sink_exports: BTreeMap<GlobalId, ComputeSinkDesc<S, T>>
sinks to be created (id of new sink, description of sink)
as_of: Option<Antichain<T>>
An optional frontier to which inputs should be advanced.
If this is set, it should override the default setting determined by
the upper bound of since
frontiers contributing to the dataflow.
It is an error for this to be set to a frontier not beyond that default.
until: Antichain<T>
Frontier beyond which the dataflow should not execute.
Specifically, updates at times greater or equal to this frontier are suppressed.
This is often set to as_of + 1
to enable “batch” computations.
Note that frontier advancements might still happen to times that are after the until
,
only data is suppressed. (This is consistent with how frontier advancements can also
happen before the as_of
.)
initial_storage_as_of: Option<Antichain<T>>
The initial as_of when the collection is first created. Filled only for materialized views. Note that this doesn’t change upon restarts.
refresh_schedule: Option<RefreshSchedule>
The schedule of REFRESH materialized views.
debug_name: String
Human-readable name
time_dependence: Option<TimeDependence>
Description of how the dataflow’s progress relates to wall-clock time. None for unknown.
Implementations§
source§impl<P, S> DataflowDescription<P, S, Timestamp>
impl<P, S> DataflowDescription<P, S, Timestamp>
sourcepub fn is_single_time(&self) -> bool
pub fn is_single_time(&self) -> bool
Tests if the dataflow refers to a single timestamp, namely
that as_of
has a single coordinate and that the until
value corresponds to the as_of
value plus one, or as_of
is the maximum timestamp and is thus single.
source§impl<T> DataflowDescription<Plan<T>, (), Timestamp>
impl<T> DataflowDescription<Plan<T>, (), Timestamp>
sourcepub fn check_invariants(&self) -> Result<(), String>
pub fn check_invariants(&self) -> Result<(), String>
Check invariants expected to be true about DataflowDescription
s.
source§impl<T> DataflowDescription<OptimizedMirRelationExpr, (), T>
impl<T> DataflowDescription<OptimizedMirRelationExpr, (), T>
sourcepub fn new(name: String) -> Self
pub fn new(name: String) -> Self
Creates a new dataflow description with a human-readable name.
sourcepub fn import_index(
&mut self,
id: GlobalId,
desc: IndexDesc,
typ: RelationType,
monotonic: bool,
)
pub fn import_index( &mut self, id: GlobalId, desc: IndexDesc, typ: RelationType, monotonic: bool, )
Imports a previously exported index.
This method makes available an index previously exported as id
, identified
to the query by description
(which names the view the index arranges, and
the keys by which it is arranged).
sourcepub fn import_source(
&mut self,
id: GlobalId,
typ: RelationType,
monotonic: bool,
)
pub fn import_source( &mut self, id: GlobalId, typ: RelationType, monotonic: bool, )
Imports a source and makes it available as id
.
sourcepub fn insert_plan(&mut self, id: GlobalId, plan: OptimizedMirRelationExpr)
pub fn insert_plan(&mut self, id: GlobalId, plan: OptimizedMirRelationExpr)
Binds to id
the relation expression plan
.
sourcepub fn export_index(
&mut self,
id: GlobalId,
description: IndexDesc,
on_type: RelationType,
)
pub fn export_index( &mut self, id: GlobalId, description: IndexDesc, on_type: RelationType, )
Exports as id
an index described by description
.
Future uses of import_index
in other dataflow descriptions may use id
,
as long as this dataflow has not been terminated in the meantime.
sourcepub fn export_sink(&mut self, id: GlobalId, description: ComputeSinkDesc<(), T>)
pub fn export_sink(&mut self, id: GlobalId, description: ComputeSinkDesc<(), T>)
Exports as id
a sink described by description
.
sourcepub fn is_imported(&self, id: &GlobalId) -> bool
pub fn is_imported(&self, id: &GlobalId) -> bool
Returns true iff id
is already imported.
sourcepub fn arity_of(&self, id: &GlobalId) -> usize
pub fn arity_of(&self, id: &GlobalId) -> usize
The number of columns associated with an identifier in the dataflow.
sourcepub fn visit_children<R, S, E>(&mut self, r: R, s: S) -> Result<(), E>where
R: Fn(&mut OptimizedMirRelationExpr) -> Result<(), E>,
S: Fn(&mut MirScalarExpr) -> Result<(), E>,
pub fn visit_children<R, S, E>(&mut self, r: R, s: S) -> Result<(), E>where
R: Fn(&mut OptimizedMirRelationExpr) -> Result<(), E>,
S: Fn(&mut MirScalarExpr) -> Result<(), E>,
Calls r and s on any sub-members of those types in self. Halts at the first error return.
source§impl<P, S, T> DataflowDescription<P, S, T>
impl<P, S, T> DataflowDescription<P, S, T>
sourcepub fn set_as_of(&mut self, as_of: Antichain<T>)
pub fn set_as_of(&mut self, as_of: Antichain<T>)
Sets the as_of
frontier to the supplied argument.
This method allows the dataflow to indicate a frontier up through which all times should be advanced. This can be done for at least two reasons: 1. correctness and 2. performance.
Correctness may require an as_of
to ensure that historical detail
is consolidated at representative times that do not present specific
detail that is not specifically correct. For example, updates may be
compacted to times that are no longer the source times, but instead
some byproduct of when compaction was executed; we should not present
those specific times as meaningfully different from other equivalent
times.
Performance may benefit from an aggressive as_of
as it reduces the
number of distinct moments at which collections vary. Differential
dataflow will refresh its outputs at each time its inputs change and
to moderate that we can minimize the volume of distinct input times
as much as possible.
Generally, one should consider setting as_of
at least to the since
frontiers of contributing data sources and as aggressively as the
computation permits.
sourcepub fn set_initial_as_of(&mut self, initial_as_of: Antichain<T>)
pub fn set_initial_as_of(&mut self, initial_as_of: Antichain<T>)
Records the initial as_of
of the storage collection associated with a materialized view.
sourcepub fn import_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn import_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of imported objects (indexes and sources).
sourcepub fn imported_index_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn imported_index_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of imported indexes.
sourcepub fn imported_source_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn imported_source_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of imported sources.
sourcepub fn export_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn export_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of exported objects (indexes and sinks).
sourcepub fn exported_index_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn exported_index_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of exported indexes.
sourcepub fn exported_sink_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
pub fn exported_sink_ids(&self) -> impl Iterator<Item = GlobalId> + Clone + '_
Identifiers of exported sinks.
sourcepub fn persist_sink_ids(&self) -> impl Iterator<Item = GlobalId> + '_
pub fn persist_sink_ids(&self) -> impl Iterator<Item = GlobalId> + '_
Identifiers of exported persist sinks.
sourcepub fn subscribe_ids(&self) -> impl Iterator<Item = GlobalId> + '_
pub fn subscribe_ids(&self) -> impl Iterator<Item = GlobalId> + '_
Identifiers of exported subscribe sinks.
sourcepub fn continual_task_ids(&self) -> impl Iterator<Item = GlobalId> + '_
pub fn continual_task_ids(&self) -> impl Iterator<Item = GlobalId> + '_
Identifiers of exported continual tasks.
sourcepub fn copy_to_ids(&self) -> impl Iterator<Item = GlobalId> + '_
pub fn copy_to_ids(&self) -> impl Iterator<Item = GlobalId> + '_
Identifiers of exported copy to sinks.
sourcepub fn display_import_ids(&self) -> impl Display + '_
pub fn display_import_ids(&self) -> impl Display + '_
Produce a Display
able value containing the import IDs of this dataflow.
sourcepub fn display_export_ids(&self) -> impl Display + '_
pub fn display_export_ids(&self) -> impl Display + '_
Produce a Display
able value containing the export IDs of this dataflow.
sourcepub fn is_transient(&self) -> bool
pub fn is_transient(&self) -> bool
Whether this dataflow installs transient collections.
sourcepub fn build_desc(&self, id: GlobalId) -> &BuildDesc<P>
pub fn build_desc(&self, id: GlobalId) -> &BuildDesc<P>
Returns the description of the object to build with the specified identifier.
§Panics
Panics if id
is not present in objects_to_build
exactly once.
source§impl<P, S, T> DataflowDescription<P, S, T>where
P: CollectionPlan,
impl<P, S, T> DataflowDescription<P, S, T>where
P: CollectionPlan,
sourcepub fn depends_on(&self, collection_id: GlobalId) -> BTreeSet<GlobalId>
pub fn depends_on(&self, collection_id: GlobalId) -> BTreeSet<GlobalId>
Computes the set of identifiers upon which the specified collection identifier depends.
collection_id
must specify a valid object in objects_to_build
.
This method includes identifiers for e.g. intermediate views, and should be filtered if one only wants sources and indexes.
This method is safe for mutually recursive view definitions.
sourcepub fn depends_on_into(
&self,
collection_id: GlobalId,
out: &mut BTreeSet<GlobalId>,
)
pub fn depends_on_into( &self, collection_id: GlobalId, out: &mut BTreeSet<GlobalId>, )
Like depends_on
, but appends to an existing BTreeSet
.
sourcepub fn depends_on_imports(&self, collection_id: GlobalId) -> BTreeSet<GlobalId>
pub fn depends_on_imports(&self, collection_id: GlobalId) -> BTreeSet<GlobalId>
Computes the set of imports upon which the specified collection depends.
This method behaves like depends_on
but filters out internal dependencies that are not
included in the dataflow imports.
source§impl<S, T> DataflowDescription<FlatPlan, S, T>
impl<S, T> DataflowDescription<FlatPlan, S, T>
sourcepub fn compatible_with(&self, other: &Self) -> bool
pub fn compatible_with(&self, other: &Self) -> bool
Determine if a dataflow description is compatible with this dataflow description.
Compatible dataflows have structurally equal exports, imports, and objects to build. The
as_of
of the receiver has to be less equal the other
as_of
.
Note that this method performs normalization as part of the structural equality checking,
which involves cloning both self
and other
. It is therefore relatively expensive and
should only be used on cold code paths.
sourcefn as_comparable(&self) -> Self
fn as_comparable(&self) -> Self
Returns a DataflowDescription
that has the same structure as self
and can be
structurally compared to other DataflowDescription
s.
For now this method performs a single normalization only: It replaces transient GlobalId
s
that are only used internally (i.e. not imported nor exported) with consecutive IDs
starting from t1
.
source§impl<'a> DataflowDescription<Plan>
impl<'a> DataflowDescription<Plan>
fn as_explain_multi_plan( &'a mut self, context: &'a ExplainContext<'a>, ) -> Result<ExplainMultiPlan<'a, Plan>, ExplainError>
source§impl<'a> DataflowDescription<OptimizedMirRelationExpr>
impl<'a> DataflowDescription<OptimizedMirRelationExpr>
fn as_explain_multi_plan( &'a mut self, context: &'a ExplainContext<'a>, ) -> Result<ExplainMultiPlan<'a, MirRelationExpr>, ExplainError>
Trait Implementations§
source§impl Arbitrary for DataflowDescription<FlatPlan, CollectionMetadata, Timestamp>
impl Arbitrary for DataflowDescription<FlatPlan, CollectionMetadata, Timestamp>
§type Strategy = BoxedStrategy<DataflowDescription<FlatPlan, CollectionMetadata>>
type Strategy = BoxedStrategy<DataflowDescription<FlatPlan, CollectionMetadata>>
Strategy
used to generate values of type Self
.§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.source§fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
source§impl Arbitrary for DataflowDescription<OptimizedMirRelationExpr, (), Timestamp>
impl Arbitrary for DataflowDescription<OptimizedMirRelationExpr, (), Timestamp>
§type Strategy = BoxedStrategy<DataflowDescription<OptimizedMirRelationExpr>>
type Strategy = BoxedStrategy<DataflowDescription<OptimizedMirRelationExpr>>
Strategy
used to generate values of type Self
.§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.source§fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
source§impl Arbitrary for DataflowDescription<Plan, (), Timestamp>
impl Arbitrary for DataflowDescription<Plan, (), Timestamp>
§type Strategy = BoxedStrategy<DataflowDescription<Plan>>
type Strategy = BoxedStrategy<DataflowDescription<Plan>>
Strategy
used to generate values of type Self
.§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.source§fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_: Self::Parameters) -> Self::Strategy
source§impl<P: Clone, S: Clone + 'static, T: Clone> Clone for DataflowDescription<P, S, T>
impl<P: Clone, S: Clone + 'static, T: Clone> Clone for DataflowDescription<P, S, T>
source§fn clone(&self) -> DataflowDescription<P, S, T>
fn clone(&self) -> DataflowDescription<P, S, T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de, P, S, T> Deserialize<'de> for DataflowDescription<P, S, T>
impl<'de, P, S, T> Deserialize<'de> for DataflowDescription<P, S, T>
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<'a> Explain<'a> for DataflowDescription<OptimizedMirRelationExpr>
impl<'a> Explain<'a> for DataflowDescription<OptimizedMirRelationExpr>
§type Context = ExplainContext<'a>
type Context = ExplainContext<'a>
§type Text = ExplainMultiPlan<'a, MirRelationExpr>
type Text = ExplainMultiPlan<'a, MirRelationExpr>
Explain::explain_text
call.§type Json = ExplainMultiPlan<'a, MirRelationExpr>
type Json = ExplainMultiPlan<'a, MirRelationExpr>
Explain::explain_json
call.§type Dot = UnsupportedFormat
type Dot = UnsupportedFormat
Explain::explain_json
call.source§fn explain_text(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Text, ExplainError>
fn explain_text( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Text, ExplainError>
source§fn explain_json(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Text, ExplainError>
fn explain_json( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Text, ExplainError>
source§fn explain(
&'a mut self,
format: &'a ExplainFormat,
context: &'a Self::Context,
) -> Result<String, ExplainError>
fn explain( &'a mut self, format: &'a ExplainFormat, context: &'a Self::Context, ) -> Result<String, ExplainError>
source§fn explain_dot(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Dot, ExplainError>
fn explain_dot( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Dot, ExplainError>
source§impl<'a> Explain<'a> for DataflowDescription<Plan>
impl<'a> Explain<'a> for DataflowDescription<Plan>
§type Context = ExplainContext<'a>
type Context = ExplainContext<'a>
§type Text = ExplainMultiPlan<'a, Plan>
type Text = ExplainMultiPlan<'a, Plan>
Explain::explain_text
call.§type Json = ExplainMultiPlan<'a, Plan>
type Json = ExplainMultiPlan<'a, Plan>
Explain::explain_json
call.§type Dot = UnsupportedFormat
type Dot = UnsupportedFormat
Explain::explain_json
call.source§fn explain_text(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Text, ExplainError>
fn explain_text( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Text, ExplainError>
source§fn explain_json(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Text, ExplainError>
fn explain_json( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Text, ExplainError>
source§fn explain(
&'a mut self,
format: &'a ExplainFormat,
context: &'a Self::Context,
) -> Result<String, ExplainError>
fn explain( &'a mut self, format: &'a ExplainFormat, context: &'a Self::Context, ) -> Result<String, ExplainError>
source§fn explain_dot(
&'a mut self,
context: &'a Self::Context,
) -> Result<Self::Dot, ExplainError>
fn explain_dot( &'a mut self, context: &'a Self::Context, ) -> Result<Self::Dot, ExplainError>
source§impl<P: PartialEq, S: PartialEq + 'static, T: PartialEq> PartialEq for DataflowDescription<P, S, T>
impl<P: PartialEq, S: PartialEq + 'static, T: PartialEq> PartialEq for DataflowDescription<P, S, T>
source§fn eq(&self, other: &DataflowDescription<P, S, T>) -> bool
fn eq(&self, other: &DataflowDescription<P, S, T>) -> bool
self
and other
values to be equal, and is used by ==
.source§impl RustType<ProtoDataflowDescription> for DataflowDescription<FlatPlan, CollectionMetadata>
impl RustType<ProtoDataflowDescription> for DataflowDescription<FlatPlan, CollectionMetadata>
source§fn into_proto(&self) -> ProtoDataflowDescription
fn into_proto(&self) -> ProtoDataflowDescription
Self
into a Proto
value.source§fn from_proto(
proto: ProtoDataflowDescription,
) -> Result<Self, TryFromProtoError>
fn from_proto( proto: ProtoDataflowDescription, ) -> Result<Self, TryFromProtoError>
source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.source§impl<P, S, T> Serialize for DataflowDescription<P, S, T>
impl<P, S, T> Serialize for DataflowDescription<P, S, T>
impl<P: Eq, S: Eq + 'static, T: Eq> Eq for DataflowDescription<P, S, T>
impl<P, S: 'static, T> StructuralPartialEq for DataflowDescription<P, S, T>
Auto Trait Implementations§
impl<P, S, T> Freeze for DataflowDescription<P, S, T>where
T: Freeze,
impl<P, S, T> RefUnwindSafe for DataflowDescription<P, S, T>
impl<P, S, T> Send for DataflowDescription<P, S, T>
impl<P, S, T> Sync for DataflowDescription<P, S, T>
impl<P, S, T> Unpin for DataflowDescription<P, S, T>
impl<P, S, T> UnwindSafe for DataflowDescription<P, S, T>
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,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.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<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp 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<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.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.