pub struct QueryableBuilder<'a, 'b, Handler, const BACKGROUND: bool = false> { /* private fields */ }Expand description
Implementations§
Source§impl<'a, 'b> QueryableBuilder<'a, 'b, DefaultHandler>
impl<'a, 'b> QueryableBuilder<'a, 'b, DefaultHandler>
Sourcepub fn callback<F>(
self,
callback: F,
) -> QueryableBuilder<'a, 'b, Callback<Query>>
pub fn callback<F>( self, callback: F, ) -> QueryableBuilder<'a, 'b, Callback<Query>>
Receive the queries for this queryable with a callback.
§Examples
let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let queryable = session
.declare_queryable("key/expression")
.callback(|query| {println!(">> Handling query '{}'", query.selector());})
.await
.unwrap();Sourcepub fn callback_mut<F>(
self,
callback: F,
) -> QueryableBuilder<'a, 'b, Callback<Query>>
pub fn callback_mut<F>( self, callback: F, ) -> QueryableBuilder<'a, 'b, Callback<Query>>
Receive the queries for this Queryable with a mutable callback.
Using this guarantees that your callback will never be called concurrently.
If your callback is also accepted by the callback method, we suggest you use it instead of callback_mut.
§Examples
let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let mut n = 0;
let queryable = session
.declare_queryable("key/expression")
.callback_mut(move |query| {n += 1;})
.await
.unwrap();Sourcepub fn with<Handler>(
self,
handler: Handler,
) -> QueryableBuilder<'a, 'b, Handler>where
Handler: IntoHandler<Query>,
pub fn with<Handler>(
self,
handler: Handler,
) -> QueryableBuilder<'a, 'b, Handler>where
Handler: IntoHandler<Query>,
Receive the queries for this Queryable with a Handler.
§Examples
let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let queryable = session
.declare_queryable("key/expression")
.with(flume::bounded(32))
.await
.unwrap();
while let Ok(query) = queryable.recv_async().await {
println!(">> Handling query '{}'", query.selector());
}Source§impl<'a, 'b> QueryableBuilder<'a, 'b, Callback<Query>>
impl<'a, 'b> QueryableBuilder<'a, 'b, Callback<Query>>
Sourcepub fn background(self) -> QueryableBuilder<'a, 'b, Callback<Query>, true>
pub fn background(self) -> QueryableBuilder<'a, 'b, Callback<Query>, true>
Register the queryable callback to be run in background until the session is closed.
Background builder doesn’t return a Queryable object anymore.
§Examples
let session = zenoh::open(zenoh::Config::default()).await.unwrap();
// no need to assign and keep a variable with a background queryable
session
.declare_queryable("key/expression")
.callback(|query| {println!(">> Handling query '{}'", query.selector());})
.background()
.await
.unwrap();Source§impl<Handler, const BACKGROUND: bool> QueryableBuilder<'_, '_, Handler, BACKGROUND>
impl<Handler, const BACKGROUND: bool> QueryableBuilder<'_, '_, Handler, BACKGROUND>
Sourcepub fn allowed_origin(self, origin: Locality) -> Self
Available on crate feature unstable only.
pub fn allowed_origin(self, origin: Locality) -> Self
unstable only.Trait Implementations§
Source§impl<'a, 'b, Handler: Debug, const BACKGROUND: bool> Debug for QueryableBuilder<'a, 'b, Handler, BACKGROUND>
impl<'a, 'b, Handler: Debug, const BACKGROUND: bool> Debug for QueryableBuilder<'a, 'b, Handler, BACKGROUND>
Source§impl IntoFuture for QueryableBuilder<'_, '_, Callback<Query>, true>
impl IntoFuture for QueryableBuilder<'_, '_, Callback<Query>, true>
Source§type Output = <QueryableBuilder<'_, '_, Callback<Query>, true> as Resolvable>::To
type Output = <QueryableBuilder<'_, '_, Callback<Query>, true> as Resolvable>::To
The output that the future will produce on completion.
Source§type IntoFuture = Ready<<QueryableBuilder<'_, '_, Callback<Query>, true> as Resolvable>::To>
type IntoFuture = Ready<<QueryableBuilder<'_, '_, Callback<Query>, true> as Resolvable>::To>
Which kind of future are we turning this into?
Source§fn into_future(self) -> Self::IntoFuture
fn into_future(self) -> Self::IntoFuture
Creates a future from a value. Read more
Source§impl<Handler> IntoFuture for QueryableBuilder<'_, '_, Handler>
impl<Handler> IntoFuture for QueryableBuilder<'_, '_, Handler>
Source§type Output = <QueryableBuilder<'_, '_, Handler> as Resolvable>::To
type Output = <QueryableBuilder<'_, '_, Handler> as Resolvable>::To
The output that the future will produce on completion.
Source§type IntoFuture = Ready<<QueryableBuilder<'_, '_, Handler> as Resolvable>::To>
type IntoFuture = Ready<<QueryableBuilder<'_, '_, Handler> as Resolvable>::To>
Which kind of future are we turning this into?
Source§fn into_future(self) -> Self::IntoFuture
fn into_future(self) -> Self::IntoFuture
Creates a future from a value. Read more
Source§impl Resolvable for QueryableBuilder<'_, '_, Callback<Query>, true>
impl Resolvable for QueryableBuilder<'_, '_, Callback<Query>, true>
Source§impl<Handler> Resolvable for QueryableBuilder<'_, '_, Handler>
impl<Handler> Resolvable for QueryableBuilder<'_, '_, Handler>
Source§impl Wait for QueryableBuilder<'_, '_, Callback<Query>, true>
impl Wait for QueryableBuilder<'_, '_, Callback<Query>, true>
Source§fn wait(self) -> <Self as Resolvable>::To
fn wait(self) -> <Self as Resolvable>::To
Synchronously execute and wait
Source§impl<Handler> Wait for QueryableBuilder<'_, '_, Handler>
impl<Handler> Wait for QueryableBuilder<'_, '_, Handler>
Source§fn wait(self) -> <Self as Resolvable>::To
fn wait(self) -> <Self as Resolvable>::To
Synchronously execute and wait
Auto Trait Implementations§
impl<'a, 'b, Handler, const BACKGROUND: bool> Freeze for QueryableBuilder<'a, 'b, Handler, BACKGROUND>where
Handler: Freeze,
impl<'a, 'b, Handler, const BACKGROUND: bool = false> !RefUnwindSafe for QueryableBuilder<'a, 'b, Handler, BACKGROUND>
impl<'a, 'b, Handler, const BACKGROUND: bool> Send for QueryableBuilder<'a, 'b, Handler, BACKGROUND>where
Handler: Send,
impl<'a, 'b, Handler, const BACKGROUND: bool> Sync for QueryableBuilder<'a, 'b, Handler, BACKGROUND>where
Handler: Sync,
impl<'a, 'b, Handler, const BACKGROUND: bool> Unpin for QueryableBuilder<'a, 'b, Handler, BACKGROUND>where
Handler: Unpin,
impl<'a, 'b, Handler, const BACKGROUND: bool = false> !UnwindSafe for QueryableBuilder<'a, 'b, Handler, BACKGROUND>
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
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> 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>
Converts
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>
Converts
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