pub struct Selector<Err, InitErr> { /* private fields */ }
Expand description
Mqtt server selector
Selector allows to choose different mqtt server impls depends on connectt packet.
Implementations§
source§impl<Err, InitErr> Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
impl<Err, InitErr> Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
sourcepub fn handshake_timeout(self, timeout: Seconds) -> Self
pub fn handshake_timeout(self, timeout: Seconds) -> Self
Set handshake timeout.
Handshake includes connect
packet and response connect-ack
.
By default handshake timeuot is 10 seconds.
sourcepub fn max_size(self, size: u32) -> Self
pub fn max_size(self, size: u32) -> Self
Set max inbound frame size.
If max size is set to 0
, size is unlimited.
By default max size is set to 0
sourcepub fn variant<F, R, St, C, Cn, P>(
self,
check: F,
server: MqttServer<St, C, Cn, P>
) -> Selfwhere
F: Fn(&Handshake) -> R + 'static,
R: Future<Output = Result<bool, Err>> + 'static,
St: 'static,
C: ServiceFactory<Handshake, Response = HandshakeAck<St>, Error = Err, InitError = InitErr> + 'static,
C::Error: From<Cn::Error> + From<Cn::InitError> + From<P::Error> + From<P::InitError> + Debug,
Cn: ServiceFactory<ControlMessage<Err>, Session<St>, Response = ControlResult> + 'static,
P: ServiceFactory<Publish, Session<St>, Response = PublishAck> + 'static,
P::Error: Debug,
PublishAck: TryFrom<P::Error, Error = C::Error>,
pub fn variant<F, R, St, C, Cn, P>(
self,
check: F,
server: MqttServer<St, C, Cn, P>
) -> Selfwhere
F: Fn(&Handshake) -> R + 'static,
R: Future<Output = Result<bool, Err>> + 'static,
St: 'static,
C: ServiceFactory<Handshake, Response = HandshakeAck<St>, Error = Err, InitError = InitErr> + 'static,
C::Error: From<Cn::Error> + From<Cn::InitError> + From<P::Error> + From<P::InitError> + Debug,
Cn: ServiceFactory<ControlMessage<Err>, Session<St>, Response = ControlResult> + 'static,
P: ServiceFactory<Publish, Session<St>, Response = PublishAck> + 'static,
P::Error: Debug,
PublishAck: TryFrom<P::Error, Error = C::Error>,
Add server variant
Trait Implementations§
source§impl<Err, InitErr> ServiceFactory<(IoBoxed, Deadline), ()> for Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
impl<Err, InitErr> ServiceFactory<(IoBoxed, Deadline), ()> for Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
§type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<(IoBoxed, Deadline), ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<(IoBoxed, Deadline), ()>>::InitError>> + 'f, Global>>
type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<(IoBoxed, Deadline), ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<(IoBoxed, Deadline), ()>>::InitError>> + 'f, Global>>
The future of the
ServiceFactory
instance.source§fn create(&self, _: ()) -> Self::Future<'_>
fn create(&self, _: ()) -> Self::Future<'_>
Create and return a new service value asynchronously.
§fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
Map this service’s output to a different type, returning a new service
of the resulting type.
§fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
Map this service’s error to a different error, returning a new service.
§fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
Map this factory’s init error to a different error, returning a new service.
source§impl<F, Err, InitErr> ServiceFactory<Io<F>, ()> for Selector<Err, InitErr>where
F: Filter,
Err: 'static,
InitErr: 'static,
impl<F, Err, InitErr> ServiceFactory<Io<F>, ()> for Selector<Err, InitErr>where
F: Filter,
Err: 'static,
InitErr: 'static,
§type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<Io<F>, ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<Io<F>, ()>>::InitError>> + 'f, Global>>
type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<Io<F>, ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<Io<F>, ()>>::InitError>> + 'f, Global>>
The future of the
ServiceFactory
instance.source§fn create(&self, _: ()) -> Self::Future<'_>
fn create(&self, _: ()) -> Self::Future<'_>
Create and return a new service value asynchronously.
§fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
Map this service’s output to a different type, returning a new service
of the resulting type.
§fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
Map this service’s error to a different error, returning a new service.
§fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
Map this factory’s init error to a different error, returning a new service.
source§impl<Err, InitErr> ServiceFactory<IoBoxed, ()> for Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
impl<Err, InitErr> ServiceFactory<IoBoxed, ()> for Selector<Err, InitErr>where
Err: 'static,
InitErr: 'static,
§type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<IoBoxed, ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<IoBoxed, ()>>::InitError>> + 'f, Global>>
type Future<'f> = Pin<Box<dyn Future<Output = Result<<Selector<Err, InitErr> as ServiceFactory<IoBoxed, ()>>::Service, <Selector<Err, InitErr> as ServiceFactory<IoBoxed, ()>>::InitError>> + 'f, Global>>
The future of the
ServiceFactory
instance.source§fn create(&self, _: ()) -> Self::Future<'_>
fn create(&self, _: ()) -> Self::Future<'_>
Create and return a new service value asynchronously.
§fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
fn map<F, Res>(self, f: F) -> MapFactory<Self, F, Req, Res, Cfg>where
Self: Sized,
F: Fn(Self::Response) -> Res + Clone,
Map this service’s output to a different type, returning a new service
of the resulting type.
§fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
fn map_err<F, E>(self, f: F) -> MapErrFactory<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::Error) -> E + Clone,
Map this service’s error to a different error, returning a new service.
§fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, Req, Cfg, F, E>where
Self: Sized,
F: Fn(Self::InitError) -> E + Clone,
Map this factory’s init error to a different error, returning a new service.
Auto Trait Implementations§
impl<Err, InitErr> !RefUnwindSafe for Selector<Err, InitErr>
impl<Err, InitErr> !Send for Selector<Err, InitErr>
impl<Err, InitErr> !Sync for Selector<Err, InitErr>
impl<Err, InitErr> Unpin for Selector<Err, InitErr>where
Err: Unpin,
InitErr: Unpin,
impl<Err, InitErr> !UnwindSafe for Selector<Err, InitErr>
Blanket Implementations§
§impl<T, Req, Cfg> IntoServiceFactory<T, Req, Cfg> for Twhere
T: ServiceFactory<Req, Cfg>,
impl<T, Req, Cfg> IntoServiceFactory<T, Req, Cfg> for Twhere
T: ServiceFactory<Req, Cfg>,
§fn into_factory(self) -> T
fn into_factory(self) -> T
Convert
Self
to a ServiceFactory