pub struct MetaClient {
id: Id,
channel_manager: ChannelManager,
leader_provider_factory: Arc<dyn LeaderProviderFactory>,
heartbeat: Option<Client>,
config: Option<Client>,
store: Option<Client>,
procedure: Option<Client>,
cluster: Option<Client>,
region_follower: Option<RegionFollowerClientRef>,
}Fields§
§id: Id§channel_manager: ChannelManager§leader_provider_factory: Arc<dyn LeaderProviderFactory>§heartbeat: Option<Client>§config: Option<Client>§store: Option<Client>§procedure: Option<Client>§cluster: Option<Client>§region_follower: Option<RegionFollowerClientRef>Implementations§
Source§impl MetaClient
impl MetaClient
pub async fn start<U, A>(&mut self, urls: A) -> Result<()>
Sourcepub(crate) async fn start_with<U, A>(
&mut self,
leader_provider: LeaderProviderRef,
peers: A,
) -> Result<()>
pub(crate) async fn start_with<U, A>( &mut self, leader_provider: LeaderProviderRef, peers: A, ) -> Result<()>
Start the client with a LeaderProvider and other Metasrv peers’ addresses.
Sourcepub async fn ask_leader(&self) -> Result<String>
pub async fn ask_leader(&self) -> Result<String>
Ask the leader address of metasrv, and the heartbeat component
needs to create a bidirectional streaming to the leader.
pub async fn pull_config<T, U>(&self, deserializer: T) -> Result<U>where
T: PluginOptionsDeserializer<U>,
U: DeserializeOwned,
Sourcepub async fn heartbeat(
&self,
) -> Result<(HeartbeatSender, HeartbeatStream, HeartbeatConfig)>
pub async fn heartbeat( &self, ) -> Result<(HeartbeatSender, HeartbeatStream, HeartbeatConfig)>
Returns a heartbeat bidirectional streaming: (sender, receiver), the
other end is the leader of metasrv.
The datanode needs to use the sender to continuously send heartbeat
packets (some self-state data), and the receiver can receive a response
from “metasrv” (which may contain some scheduling instructions).
Returns the heartbeat sender, stream, and configuration received from Metasrv.
Sourcepub async fn range(&self, req: RangeRequest) -> Result<RangeResponse>
pub async fn range(&self, req: RangeRequest) -> Result<RangeResponse>
Range gets the keys in the range from the key-value store.
Sourcepub async fn put(&self, req: PutRequest) -> Result<PutResponse>
pub async fn put(&self, req: PutRequest) -> Result<PutResponse>
Put puts the given key into the key-value store.
Sourcepub async fn batch_get(&self, req: BatchGetRequest) -> Result<BatchGetResponse>
pub async fn batch_get(&self, req: BatchGetRequest) -> Result<BatchGetResponse>
BatchGet atomically get values by the given keys from the key-value store.
Sourcepub async fn batch_put(&self, req: BatchPutRequest) -> Result<BatchPutResponse>
pub async fn batch_put(&self, req: BatchPutRequest) -> Result<BatchPutResponse>
BatchPut atomically puts the given keys into the key-value store.
Sourcepub async fn batch_delete(
&self,
req: BatchDeleteRequest,
) -> Result<BatchDeleteResponse>
pub async fn batch_delete( &self, req: BatchDeleteRequest, ) -> Result<BatchDeleteResponse>
BatchDelete atomically deletes the given keys from the key-value store.
Sourcepub async fn compare_and_put(
&self,
req: CompareAndPutRequest,
) -> Result<CompareAndPutResponse>
pub async fn compare_and_put( &self, req: CompareAndPutRequest, ) -> Result<CompareAndPutResponse>
CompareAndPut atomically puts the value to the given updated value if the current value == the expected value.
Sourcepub async fn delete_range(
&self,
req: DeleteRangeRequest,
) -> Result<DeleteRangeResponse>
pub async fn delete_range( &self, req: DeleteRangeRequest, ) -> Result<DeleteRangeResponse>
DeleteRange deletes the given range from the key-value store.
Sourcepub async fn query_procedure_state(
&self,
pid: &str,
) -> Result<ProcedureStateResponse>
pub async fn query_procedure_state( &self, pid: &str, ) -> Result<ProcedureStateResponse>
Query the procedure state by its id.
Sourcepub async fn migrate_region(
&self,
request: MigrateRegionRequest,
) -> Result<MigrateRegionResponse>
pub async fn migrate_region( &self, request: MigrateRegionRequest, ) -> Result<MigrateRegionResponse>
Submit a region migration task.
Sourcepub async fn reconcile(
&self,
request: ReconcileRequest,
) -> Result<ReconcileResponse>
pub async fn reconcile( &self, request: ReconcileRequest, ) -> Result<ReconcileResponse>
Reconcile the procedure state.
Sourcepub async fn gc_regions(&self, request: GcRegionsRequest) -> Result<GcResponse>
pub async fn gc_regions(&self, request: GcRegionsRequest) -> Result<GcResponse>
Manually trigger GC for specific regions.
Sourcepub async fn gc_table(&self, request: GcTableRequest) -> Result<GcResponse>
pub async fn gc_table(&self, request: GcTableRequest) -> Result<GcResponse>
Manually trigger GC for a table (all its regions).
Sourcepub async fn submit_ddl_task(
&self,
req: SubmitDdlTaskRequest,
) -> Result<SubmitDdlTaskResponse>
pub async fn submit_ddl_task( &self, req: SubmitDdlTaskRequest, ) -> Result<SubmitDdlTaskResponse>
Submit a DDL task
pub fn heartbeat_client(&self) -> Result<HeartbeatClient>
pub fn config_client(&self) -> Result<ConfigClient>
pub fn store_client(&self) -> Result<StoreClient>
pub fn procedure_client(&self) -> Result<ProcedureClient>
pub fn cluster_client(&self) -> Result<ClusterClient>
pub fn channel_config(&self) -> &ChannelConfig
pub fn id(&self) -> Id
Trait Implementations§
Source§impl ClusterInfo for MetaClient
impl ClusterInfo for MetaClient
type Error = Error
Source§fn list_nodes<'life0, 'async_trait>(
&'life0 self,
role: Option<ClusterRole>,
) -> Pin<Box<dyn Future<Output = Result<Vec<NodeInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_nodes<'life0, 'async_trait>(
&'life0 self,
role: Option<ClusterRole>,
) -> Pin<Box<dyn Future<Output = Result<Vec<NodeInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
role is None, list all nodes.Source§impl Debug for MetaClient
impl Debug for MetaClient
Source§impl ProcedureExecutor for MetaClient
impl ProcedureExecutor for MetaClient
Source§fn submit_ddl_task<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: SubmitDdlTaskRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<SubmitDdlTaskResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn submit_ddl_task<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: SubmitDdlTaskRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<SubmitDdlTaskResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn migrate_region<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: MigrateRegionRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<MigrateRegionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn migrate_region<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: MigrateRegionRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<MigrateRegionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn reconcile<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: ReconcileRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<ReconcileResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reconcile<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: ReconcileRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<ReconcileResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn manage_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: ManageRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn manage_region_follower<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: ManageRegionFollowerRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn query_procedure_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
pid: &'life2 str,
) -> Pin<Box<dyn Future<Output = MetaResult<ProcedureStateResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn query_procedure_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
pid: &'life2 str,
) -> Pin<Box<dyn Future<Output = MetaResult<ProcedureStateResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn gc_regions<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: GcRegionsRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<GcResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn gc_regions<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: GcRegionsRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<GcResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn gc_table<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: GcTableRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<GcResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn gc_table<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
request: GcTableRequest,
) -> Pin<Box<dyn Future<Output = MetaResult<GcResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_procedures<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 ExecutorContext,
) -> Pin<Box<dyn Future<Output = MetaResult<ProcedureDetailResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for MetaClient
impl !RefUnwindSafe for MetaClient
impl Send for MetaClient
impl Sync for MetaClient
impl Unpin for MetaClient
impl UnsafeUnpin for MetaClient
impl !UnwindSafe for MetaClient
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
§impl<T> Conv for T
impl<T> Conv 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<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<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<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.