pub struct ServerPrepare<C, Effect, Log = LogInit, State = StateNotReady, Graceful = NoGraceful, Decorator = EmptyDecorator> { /* private fields */ }
Expand description
type for prepare starting
Implementations§
Source§impl<C: 'static> ServerPrepare<C, Result<EffectContainer<BaseRouter<()>, Identity>, PrepareError>, NoLog, StateNotReady, NoGraceful, EmptyDecorator>
impl<C: 'static> ServerPrepare<C, Result<EffectContainer<BaseRouter<()>, Identity>, PrepareError>, NoLog, StateNotReady, NoGraceful, EmptyDecorator>
Sourcepub fn with_config(config: C) -> Self
pub fn with_config(config: C) -> Self
prepare staring the service with config
Source§impl<C: 'static, Log, State, Graceful, R, L, Decorator> ServerPrepare<C, Result<EffectContainer<BaseRouter<R>, L>, PrepareError>, Log, StateReady<State>, Graceful, Decorator>
impl<C: 'static, Log, State, Graceful, R, L, Decorator> ServerPrepare<C, Result<EffectContainer<BaseRouter<R>, L>, PrepareError>, Log, StateReady<State>, Graceful, Decorator>
Sourcepub async fn preparing<NewResBody>(
self,
) -> Result<ServerReady<impl Future<Output = Result<(), Error>>, impl Future<Output = Result<(), Error>>>, PrepareStartError>where
C: BindServe,
L: Send + 'static,
ServiceBuilder<L>: Layer<Route> + Clone,
<ServiceBuilder<L> as Layer<Route>>::Service: Send + Clone + Service<Request<Body>, Response = Response<NewResBody>, Error = Infallible> + 'static,
<<ServiceBuilder<L> as Layer<Route>>::Service as Service<Request<Body>>>::Future: Send,
NewResBody: Body<Data = Bytes> + Send + 'static,
NewResBody::Error: Into<BoxError>,
R: PrepareRouteEffect<State>,
State: FromStateCollector + Clone + Send + 'static + Sync,
Graceful: FetchGraceful,
pub async fn preparing<NewResBody>(
self,
) -> Result<ServerReady<impl Future<Output = Result<(), Error>>, impl Future<Output = Result<(), Error>>>, PrepareStartError>where
C: BindServe,
L: Send + 'static,
ServiceBuilder<L>: Layer<Route> + Clone,
<ServiceBuilder<L> as Layer<Route>>::Service: Send + Clone + Service<Request<Body>, Response = Response<NewResBody>, Error = Infallible> + 'static,
<<ServiceBuilder<L> as Layer<Route>>::Service as Service<Request<Body>>>::Future: Send,
NewResBody: Body<Data = Bytes> + Send + 'static,
NewResBody::Error: Into<BoxError>,
R: PrepareRouteEffect<State>,
State: FromStateCollector + Clone + Send + 'static + Sync,
Graceful: FetchGraceful,
prepare to start this server
this will consume Self
then return ServerReady
Source§impl<C: 'static> ServerPrepare<C, Result<EffectContainer<TestRouter, Identity>, PrepareError>, NoLog, StateNotReady, NoGraceful, EmptyDecorator>
impl<C: 'static> ServerPrepare<C, Result<EffectContainer<TestRouter, Identity>, PrepareError>, NoLog, StateNotReady, NoGraceful, EmptyDecorator>
Sourcepub fn test_with_config(config: C) -> Self
pub fn test_with_config(config: C) -> Self
prepare staring the service with config
Source§impl<C: 'static, Log, State, Graceful, L, Decorator> ServerPrepare<C, Result<EffectContainer<TestRouter, L>, PrepareError>, Log, StateReady<State>, Graceful, Decorator>
impl<C: 'static, Log, State, Graceful, L, Decorator> ServerPrepare<C, Result<EffectContainer<TestRouter, L>, PrepareError>, Log, StateReady<State>, Graceful, Decorator>
Sourcepub async fn preparing_test<NewResBody, H, T>(
self,
handler: H,
) -> Result<impl Service<Request<Body>, Response = TestResponse, Error = Infallible>, PrepareStartError>where
L: Send + 'static + Layer<HandlerService<H, T, State>>,
L::Service: Service<Request<Body>, Response = Response<NewResBody>, Error = Infallible> + Send + Clone + 'static,
NewResBody: Body<Data = Bytes> + Send + 'static,
NewResBody::Error: Into<BoxError>,
State: FromStateCollector + Clone + Send + 'static + Sync,
H: Handler<T, State>,
pub async fn preparing_test<NewResBody, H, T>(
self,
handler: H,
) -> Result<impl Service<Request<Body>, Response = TestResponse, Error = Infallible>, PrepareStartError>where
L: Send + 'static + Layer<HandlerService<H, T, State>>,
L::Service: Service<Request<Body>, Response = Response<NewResBody>, Error = Infallible> + Send + Clone + 'static,
NewResBody: Body<Data = Bytes> + Send + 'static,
NewResBody::Error: Into<BoxError>,
State: FromStateCollector + Clone + Send + 'static + Sync,
H: Handler<T, State>,
prepare to a service for test
this will consume Self
then return a Service for the following test
Source§impl<C: 'static, Log, State, Graceful, R: 'static, L: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<R, L>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
impl<C: 'static, Log, State, Graceful, R: 'static, L: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<R, L>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
Sourcepub fn layer<M: 'static>(
self,
middleware: M,
) -> ServerPrepare<C, Result<EffectContainer<R, Stack<M, L>>, PrepareError>, Log, State, Graceful, Decorator>
pub fn layer<M: 'static>( self, middleware: M, ) -> ServerPrepare<C, Result<EffectContainer<R, Stack<M, L>>, PrepareError>, Log, State, Graceful, Decorator>
adding middleware without previously Prepare action
Source§impl<C: 'static, Log, State, Graceful, Ri: 'static, Li: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<BaseRouter<Ri>, Li>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
impl<C: 'static, Log, State, Graceful, Ri: 'static, Li: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<BaseRouter<Ri>, Li>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
Sourcepub fn prepare_route<P, S>(
self,
prepare: P,
) -> ServerPrepare<C, Result<EffectContainer<BaseRouter<(<P as Prepare<C>>::Effect, Ri)>, Li>, PrepareError>, Log, State, Graceful, Decorator>where
P: Prepare<C> + 'static,
P::Effect: PrepareRouteEffect<S>,
Ri: PrepareRouteEffect<S>,
S: Clone + Send + 'static + Sync,
pub fn prepare_route<P, S>(
self,
prepare: P,
) -> ServerPrepare<C, Result<EffectContainer<BaseRouter<(<P as Prepare<C>>::Effect, Ri)>, Li>, PrepareError>, Log, State, Graceful, Decorator>where
P: Prepare<C> + 'static,
P::Effect: PrepareRouteEffect<S>,
Ri: PrepareRouteEffect<S>,
S: Clone + Send + 'static + Sync,
Source§impl<C: 'static, Log, State, Graceful, Ri: 'static, Li: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
impl<C: 'static, Log, State, Graceful, Ri: 'static, Li: 'static, Decorator> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>where
Decorator: PrepareDecorator,
Sourcepub fn prepare_concurrent<F>(
self,
concurrent: F,
) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>where
F: FnOnce(ConcurrentPrepareSet<'_, C, Decorator>) -> ConcurrentPrepareSet<'_, C, Decorator> + 'static,
pub fn prepare_concurrent<F>(
self,
concurrent: F,
) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>where
F: FnOnce(ConcurrentPrepareSet<'_, C, Decorator>) -> ConcurrentPrepareSet<'_, C, Decorator> + 'static,
adding a set of Prepare executing concurrently
§Note
Prepare set added by different Self::prepare_concurrent will be executed serially
Sourcepub fn prepare_state<P>(
self,
prepare: P,
) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>
pub fn prepare_state<P>( self, prepare: P, ) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>
Sourcepub fn prepare_middleware<S, P>(
self,
prepare: P,
) -> ServerPrepare<C, Result<EffectContainer<Ri, Stack<<<P as Prepare<C>>::Effect as PrepareMiddlewareEffect<S>>::Middleware, Li>>, PrepareError>, Log, State, Graceful, Decorator>
pub fn prepare_middleware<S, P>( self, prepare: P, ) -> ServerPrepare<C, Result<EffectContainer<Ri, Stack<<<P as Prepare<C>>::Effect as PrepareMiddlewareEffect<S>>::Middleware, Li>>, PrepareError>, Log, State, Graceful, Decorator>
Sourcepub fn prepare<P>(
self,
prepare: P,
) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>
pub fn prepare<P>( self, prepare: P, ) -> ServerPrepare<C, Result<EffectContainer<Ri, Li>, PrepareError>, Log, State, Graceful, Decorator>
adding a Prepare without effect
Source§impl<C, Effect, Log, State, Graceful, Decorator> ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log, State, Graceful, Decorator> ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
Sourcepub fn set_decorator<D>(
self,
decorator: D,
) -> ServerPrepare<C, Effect, Log, State, Graceful, D>where
D: PrepareDecorator,
pub fn set_decorator<D>(
self,
decorator: D,
) -> ServerPrepare<C, Effect, Log, State, Graceful, D>where
D: PrepareDecorator,
Add Decorator apply on every prepare Future
This PrepareDecorator
result will affect all following prepares
this will overwrite old PrepareDecorator
, combine multiply PrepareDecorator
is Not
support. Manual writing combining code instead
see also prepare_decorator
Sourcepub fn prepare_decorator<D, P>(
self,
prepare: P,
) -> ServerPrepare<C, Effect, Log, State, Graceful, D>where
P: Prepare<C, Effect = D, Error = Infallible, Future = Ready<Result<D, Infallible>>>,
C: 'static,
D: PrepareDecorator,
pub fn prepare_decorator<D, P>(
self,
prepare: P,
) -> ServerPrepare<C, Effect, Log, State, Graceful, D>where
P: Prepare<C, Effect = D, Error = Infallible, Future = Ready<Result<D, Infallible>>>,
C: 'static,
D: PrepareDecorator,
Add Decorator generated by a Prepare
task,
§NOTE
the Prepare
task must be a sync task, in another word, the Prepare::Future
should to
be Ready
This PrepareDecorator
result will affect all following prepares
If you using prepare
,
you can mark the Prepare
task as sync
.
use axum_starter::prepare;
// using `sync` make macro generate prepare return Ready
#[prepare(sync Decorator)]
fn foo_decorator(foo:i32)->FooDecorator{
FooDecorator(foo)
}
struct FooDecorator(i32);
If your [Decorator
] do not need any information from the C
,
you’d better using set_decorator
Source§impl<C, FutEffect, Log, State, Decorator> ServerPrepare<C, FutEffect, Log, State, NoGraceful, Decorator>
impl<C, FutEffect, Log, State, Decorator> ServerPrepare<C, FutEffect, Log, State, NoGraceful, Decorator>
Sourcepub fn graceful_shutdown<Fut>(
self,
future: Fut,
) -> ServerPrepare<C, FutEffect, Log, State, Graceful<Fut>, Decorator>
pub fn graceful_shutdown<Fut>( self, future: Fut, ) -> ServerPrepare<C, FutEffect, Log, State, Graceful<Fut>, Decorator>
set the graceful shutdown signal
Source§impl<C, FutEffect, State, Graceful, Decorator> ServerPrepare<C, FutEffect, NoLog, State, Graceful, Decorator>where
C: LoggerInitialization,
impl<C, FutEffect, State, Graceful, Decorator> ServerPrepare<C, FutEffect, NoLog, State, Graceful, Decorator>where
C: LoggerInitialization,
Sourcepub fn init_logger(
self,
) -> Result<ServerPrepare<C, FutEffect, LogInit, State, Graceful, Decorator>, <C as LoggerInitialization>::Error>
pub fn init_logger( self, ) -> Result<ServerPrepare<C, FutEffect, LogInit, State, Graceful, Decorator>, <C as LoggerInitialization>::Error>
init the (logger) of this ServerPrepare ,require C impl LoggerInitialization
Source§impl<C, Effect, Log, State, Graceful, Decorator> ServerPrepare<C, Effect, Log, StateReady<State>, Graceful, Decorator>
impl<C, Effect, Log, State, Graceful, Decorator> ServerPrepare<C, Effect, Log, StateReady<State>, Graceful, Decorator>
Sourcepub fn post_prepare<Args, T>(self, post_prepare: T) -> Self
pub fn post_prepare<Args, T>(self, post_prepare: T) -> Self
Source§impl<C, FutEffect, Log, Graceful, Decorator> ServerPrepare<C, FutEffect, Log, StateNotReady, Graceful, Decorator>
impl<C, FutEffect, Log, Graceful, Decorator> ServerPrepare<C, FutEffect, Log, StateNotReady, Graceful, Decorator>
Sourcepub fn convert_state<S: FromStateCollector>(
self,
) -> ServerPrepare<C, FutEffect, Log, StateReady<S>, Graceful, Decorator>
pub fn convert_state<S: FromStateCollector>( self, ) -> ServerPrepare<C, FutEffect, Log, StateReady<S>, Graceful, Decorator>
convert internal StateCollector
to special
State
Sourcepub fn no_state(
self,
) -> ServerPrepare<C, FutEffect, Log, StateReady<()>, Graceful, Decorator>
pub fn no_state( self, ) -> ServerPrepare<C, FutEffect, Log, StateReady<()>, Graceful, Decorator>
convenient function for ServerPrepare::convert_state::<()>
Auto Trait Implementations§
impl<C, Effect, Log, State, Graceful, Decorator> Freeze for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log = LogInit, State = StateNotReady, Graceful = NoGraceful, Decorator = EmptyDecorator> !RefUnwindSafe for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log = LogInit, State = StateNotReady, Graceful = NoGraceful, Decorator = EmptyDecorator> !Send for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log = LogInit, State = StateNotReady, Graceful = NoGraceful, Decorator = EmptyDecorator> !Sync for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log, State, Graceful, Decorator> Unpin for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
impl<C, Effect, Log = LogInit, State = StateNotReady, Graceful = NoGraceful, Decorator = EmptyDecorator> !UnwindSafe for ServerPrepare<C, Effect, Log, State, Graceful, Decorator>
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> 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> 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<'r, C, T1, T2, T3> Provider<'r, (T1, T2, T3)> for C
impl<'r, C, T1, T2, T3> Provider<'r, (T1, T2, T3)> for C
fn provide(&'r self) -> (T1, T2, T3)
Source§impl<'r, C, T1, T2, T3, T4> Provider<'r, (T1, T2, T3, T4)> for C
impl<'r, C, T1, T2, T3, T4> Provider<'r, (T1, T2, T3, T4)> for C
fn provide(&'r self) -> (T1, T2, T3, T4)
Source§impl<'r, C, T1, T2, T3, T4, T5> Provider<'r, (T1, T2, T3, T4, T5)> for C
impl<'r, C, T1, T2, T3, T4, T5> Provider<'r, (T1, T2, T3, T4, T5)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5)
Source§impl<'r, C, T1, T2, T3, T4, T5, T6> Provider<'r, (T1, T2, T3, T4, T5, T6)> for C
impl<'r, C, T1, T2, T3, T4, T5, T6> Provider<'r, (T1, T2, T3, T4, T5, T6)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5, T6)
Source§impl<'r, C, T1, T2, T3, T4, T5, T6, T7> Provider<'r, (T1, T2, T3, T4, T5, T6, T7)> for C
impl<'r, C, T1, T2, T3, T4, T5, T6, T7> Provider<'r, (T1, T2, T3, T4, T5, T6, T7)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5, T6, T7)
Source§impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8)> for C
impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8, T9> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> for C
impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8, T9> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5, T6, T7, T8, T9)
Source§impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for C
impl<'r, C, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Provider<'r, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for C
fn provide(&'r self) -> (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
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.