struct MetricEngineInner {
mito: MitoEngine,
metadata_region: MetadataRegion,
data_region: DataRegion,
state: Arc<RwLock<MetricEngineState>>,
config: EngineConfig,
row_modifier: RowModifier,
flush_task: RepeatedTask<Error>,
}Fields§
§mito: MitoEngine§metadata_region: MetadataRegion§data_region: DataRegion§state: Arc<RwLock<MetricEngineState>>§config: EngineConfig§row_modifier: RowModifier§flush_task: RepeatedTask<Error>Implementations§
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn alter_regions( &self, requests: Vec<(RegionId, RegionAlterRequest)>, extension_return_value: &mut HashMap<String, Vec<u8>>, ) -> Result<AffectedRows>
Sourcefn group_logical_region_requests_by_physical_region_id(
&self,
requests: Vec<(RegionId, RegionAlterRequest)>,
) -> Result<HashMap<RegionId, Vec<(RegionId, RegionAlterRequest)>>>
fn group_logical_region_requests_by_physical_region_id( &self, requests: Vec<(RegionId, RegionAlterRequest)>, ) -> Result<HashMap<RegionId, Vec<(RegionId, RegionAlterRequest)>>>
Groups the alter logical region requests by physical region id.
Sourcepub async fn alter_logical_regions(
&self,
physical_region_id: RegionId,
requests: Vec<(RegionId, RegionAlterRequest)>,
extension_return_value: &mut HashMap<String, Vec<u8>>,
) -> Result<AffectedRows>
pub async fn alter_logical_regions( &self, physical_region_id: RegionId, requests: Vec<(RegionId, RegionAlterRequest)>, extension_return_value: &mut HashMap<String, Vec<u8>>, ) -> Result<AffectedRows>
Alter multiple logical regions on the same physical region.
async fn alter_physical_region( &self, region_id: RegionId, request: RegionAlterRequest, ) -> Result<()>
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn catchup_region( &self, region_id: RegionId, req: RegionCatchupRequest, ) -> Result<AffectedRows>
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn close_region( &self, region_id: RegionId, _req: RegionCloseRequest, ) -> Result<AffectedRows>
pub(crate) async fn close_physical_region( &self, region_id: RegionId, ) -> Result<AffectedRows>
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn create_regions( &self, requests: Vec<(RegionId, RegionCreateRequest)>, extension_return_value: &mut HashMap<String, Vec<u8>>, ) -> Result<AffectedRows>
Sourceasync fn create_physical_region(
&self,
region_id: RegionId,
request: RegionCreateRequest,
extension_return_value: &mut HashMap<String, Vec<u8>>,
) -> Result<()>
async fn create_physical_region( &self, region_id: RegionId, request: RegionCreateRequest, extension_return_value: &mut HashMap<String, Vec<u8>>, ) -> Result<()>
Initialize a physical metric region at given region id.
Sourceasync fn create_logical_regions(
&self,
physical_region_id: RegionId,
requests: Vec<(RegionId, RegionCreateRequest)>,
extension_return_value: &mut HashMap<String, Vec<u8>>,
) -> Result<()>
async fn create_logical_regions( &self, physical_region_id: RegionId, requests: Vec<(RegionId, RegionCreateRequest)>, extension_return_value: &mut HashMap<String, Vec<u8>>, ) -> Result<()>
Create multiple logical regions on the same physical region.
Sourcefn verify_region_create_request(request: &RegionCreateRequest) -> Result<()>
fn verify_region_create_request(request: &RegionCreateRequest) -> Result<()>
Check if
- internal columns are not occupied
- required table option is present ([PHYSICAL_TABLE_METADATA_KEY] or [LOGICAL_TABLE_METADATA_KEY])
Sourcefn transform_region_id(region_id: RegionId) -> (RegionId, RegionId)
fn transform_region_id(region_id: RegionId) -> (RegionId, RegionId)
Build data region id and metadata region id from the given region id.
Return value: (data_region_id, metadata_region_id)
Sourcepub fn create_request_for_metadata_region(
&self,
request: &RegionCreateRequest,
) -> RegionCreateRequest
pub fn create_request_for_metadata_region( &self, request: &RegionCreateRequest, ) -> RegionCreateRequest
Build [RegionCreateRequest] for metadata region
This method will append [METADATA_REGION_SUBDIR] to the given region_dir.
Sourcepub fn create_request_for_data_region(
&self,
request: &RegionCreateRequest,
) -> RegionCreateRequest
pub fn create_request_for_data_region( &self, request: &RegionCreateRequest, ) -> RegionCreateRequest
Convert [RegionCreateRequest] for data region.
All tag columns in the original request will be converted to value columns. Those columns real semantic type is stored in metadata region.
This will also add internal columns to the request.
Sourcefn internal_column_metadata() -> [ColumnMetadata; 2]
fn internal_column_metadata() -> [ColumnMetadata; 2]
Generate internal column metadata.
Return [table_id_col, tsid_col]
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn drop_region( &self, region_id: RegionId, req: RegionDropRequest, ) -> Result<AffectedRows>
async fn drop_physical_region( &self, region_id: RegionId, ) -> Result<AffectedRows>
async fn drop_logical_region( &self, logical_region_id: RegionId, physical_region_id: RegionId, ) -> Result<AffectedRows>
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn flush_region( &self, region_id: RegionId, req: RegionFlushRequest, ) -> Result<AffectedRows>
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn handle_batch_open_requests( &self, parallelism: usize, requests: Vec<(RegionId, RegionOpenRequest)>, ) -> Result<BatchResponses>
async fn close_physical_region_on_recovery_failure( &self, physical_region_id: RegionId, )
async fn open_physical_region_with_results( &self, metadata_region_result: Option<Result<RegionResponse, BoxedError>>, data_region_result: Option<Result<RegionResponse, BoxedError>>, physical_region_id: RegionId, physical_region_options: PhysicalRegionOptions, ) -> Result<RegionResponse>
Sourcepub async fn open_region(
&self,
region_id: RegionId,
request: RegionOpenRequest,
) -> Result<AffectedRows>
pub async fn open_region( &self, region_id: RegionId, request: RegionOpenRequest, ) -> Result<AffectedRows>
Open a metric region.
Only open requests to a physical region matter. Those to logical regions are actually an empty operation – it only check if the request is valid. Since logical regions are multiplexed over physical regions, they are always “open”.
If trying to open a logical region whose physical region is not open, metric engine will throw a RegionNotFound error.
Sourcefn transform_open_physical_region_request(
&self,
request: RegionOpenRequest,
) -> (RegionOpenRequest, RegionOpenRequest)
fn transform_open_physical_region_request( &self, request: RegionOpenRequest, ) -> (RegionOpenRequest, RegionOpenRequest)
Transform the open request to open metadata region and data region.
Returns:
- The open request for metadata region.
- The open request for data region.
Sourceasync fn open_physical_region(
&self,
region_id: RegionId,
request: RegionOpenRequest,
) -> Result<AffectedRows>
async fn open_physical_region( &self, region_id: RegionId, request: RegionOpenRequest, ) -> Result<AffectedRows>
Invokes mito engine to open physical regions (data and metadata).
Sourcepub(crate) async fn recover_states(
&self,
physical_region_id: RegionId,
physical_region_options: PhysicalRegionOptions,
) -> Result<Vec<RegionId>>
pub(crate) async fn recover_states( &self, physical_region_id: RegionId, physical_region_options: PhysicalRegionOptions, ) -> Result<Vec<RegionId>>
Recovers MetricEngineState from physical region (idnefied by the given region id).
Includes:
- Record physical region’s column names
- Record the mapping between logical region id and physical region id
Returns new opened logical region ids.
Source§impl MetricEngineInner
impl MetricEngineInner
Sourcepub async fn put_region(
&self,
region_id: RegionId,
request: RegionPutRequest,
) -> Result<AffectedRows>
pub async fn put_region( &self, region_id: RegionId, request: RegionPutRequest, ) -> Result<AffectedRows>
Dispatch region put request
async fn put_logical_region( &self, logical_region_id: RegionId, request: RegionPutRequest, ) -> Result<AffectedRows>
Sourceasync fn verify_put_request(
&self,
logical_region_id: RegionId,
physical_region_id: RegionId,
request: &RegionPutRequest,
) -> Result<()>
async fn verify_put_request( &self, logical_region_id: RegionId, physical_region_id: RegionId, request: &RegionPutRequest, ) -> Result<()>
Verifies a put request for a logical region against its corresponding metadata region.
Includes:
- Check if the logical region exists
- Check if the columns exist
Sourcefn modify_rows(
&self,
physical_region_id: RegionId,
table_id: TableId,
rows: &mut Rows,
encoding: PrimaryKeyEncoding,
) -> Result<()>
fn modify_rows( &self, physical_region_id: RegionId, table_id: TableId, rows: &mut Rows, encoding: PrimaryKeyEncoding, ) -> Result<()>
Perform metric engine specific logic to incoming rows.
- Add table_id column
- Generate tsid
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn read_region( &self, region_id: RegionId, request: ScanRequest, ) -> Result<RegionScannerRef>
Sourceasync fn read_physical_region(
&self,
region_id: RegionId,
request: ScanRequest,
) -> Result<RegionScannerRef>
async fn read_physical_region( &self, region_id: RegionId, request: ScanRequest, ) -> Result<RegionScannerRef>
Proxy the read request to underlying physical region (mito engine).
async fn read_logical_region( &self, logical_region_id: RegionId, request: ScanRequest, ) -> Result<RegionScannerRef>
pub async fn get_last_seq_num( &self, region_id: RegionId, ) -> Result<SequenceNumber>
pub async fn load_region_metadata( &self, region_id: RegionId, ) -> Result<RegionMetadataRef>
Sourcepub fn is_physical_region(&self, region_id: RegionId) -> bool
pub fn is_physical_region(&self, region_id: RegionId) -> bool
Returns true if it’s a physical region.
async fn get_physical_region_id( &self, logical_region_id: RegionId, ) -> Result<RegionId>
Sourceasync fn transform_request(
&self,
physical_region_id: RegionId,
logical_region_id: RegionId,
request: ScanRequest,
) -> Result<ScanRequest>
async fn transform_request( &self, physical_region_id: RegionId, logical_region_id: RegionId, request: ScanRequest, ) -> Result<ScanRequest>
Transform the [ScanRequest] from logical region to physical data region.
Sourcefn table_id_filter(&self, logical_region_id: RegionId) -> Expr
fn table_id_filter(&self, logical_region_id: RegionId) -> Expr
Generate a filter on the table id column.
Sourcepub async fn transform_projection(
&self,
physical_region_id: RegionId,
logical_region_id: RegionId,
origin_projection: &[usize],
) -> Result<Vec<usize>>
pub async fn transform_projection( &self, physical_region_id: RegionId, logical_region_id: RegionId, origin_projection: &[usize], ) -> Result<Vec<usize>>
Transform the projection from logical region to physical region.
This method will not preserve internal columns.
Sourcepub async fn default_projection(
&self,
physical_region_id: RegionId,
logical_region_id: RegionId,
) -> Result<Vec<usize>>
pub async fn default_projection( &self, physical_region_id: RegionId, logical_region_id: RegionId, ) -> Result<Vec<usize>>
Default projection for a logical region. Includes non-internal columns
pub async fn logical_region_metadata( &self, physical_region_id: RegionId, logical_region_id: RegionId, ) -> Result<RegionMetadataRef>
Source§impl MetricEngineInner
impl MetricEngineInner
Sourcepub async fn load_logical_columns(
&self,
physical_region_id: RegionId,
logical_region_id: RegionId,
) -> Result<Vec<ColumnMetadata>>
pub async fn load_logical_columns( &self, physical_region_id: RegionId, logical_region_id: RegionId, ) -> Result<Vec<ColumnMetadata>>
Load column metadata of a logical region.
The return value is ordered on column name.
Sourcepub async fn load_logical_column_names(
&self,
physical_region_id: RegionId,
logical_region_id: RegionId,
) -> Result<Vec<String>>
pub async fn load_logical_column_names( &self, physical_region_id: RegionId, logical_region_id: RegionId, ) -> Result<Vec<String>>
Load logical column names of a logical region.
The return value is ordered on column name alphabetically.
Source§impl MetricEngineInner
impl MetricEngineInner
pub async fn sync_region( &self, region_id: RegionId, manifest_info: RegionManifestInfo, ) -> Result<SyncManifestResponse>
Auto Trait Implementations§
impl !Freeze for MetricEngineInner
impl !RefUnwindSafe for MetricEngineInner
impl Send for MetricEngineInner
impl Sync for MetricEngineInner
impl Unpin for MetricEngineInner
impl !UnwindSafe for MetricEngineInner
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T, V> Convert<T> for Vwhere
V: Into<T>,
impl<T, V> Convert<T> for Vwhere
V: Into<T>,
fn convert(value: Self) -> T
fn convert_box(value: Box<Self>) -> Box<T>
fn convert_vec(value: Vec<Self>) -> Vec<T>
fn convert_vec_box(value: Vec<Box<Self>>) -> Vec<Box<T>>
fn convert_matrix(value: Vec<Vec<Self>>) -> Vec<Vec<T>>
fn convert_option(value: Option<Self>) -> Option<T>
fn convert_option_box(value: Option<Box<Self>>) -> Option<Box<T>>
fn convert_option_vec(value: Option<Vec<Self>>) -> Option<Vec<T>>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.§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.