pub struct PostRouter { /* private fields */ }
Implementations§
Source§impl PostRouter
impl PostRouter
pub fn new() -> Arc<Self>
Sourcepub async fn register(&self, id: u64) -> Result<Receiver<PostResponse>>
pub async fn register(&self, id: u64) -> Result<Receiver<PostResponse>>
Registers interest in a post id, enforcing inflight cap.
Sourcepub async fn complete(&self, resp: PostResponse)
pub async fn complete(&self, resp: PostResponse)
Completes a waiting caller when a response arrives (releases inflight via Waiter drop).
Sourcepub async fn cancel(&self, id: u64)
pub async fn cancel(&self, id: u64)
Cancel a pending id (e.g., timeout); quietly succeed if id wasn’t present.
Sourcepub async fn await_with_timeout(
&self,
id: u64,
rx: Receiver<PostResponse>,
timeout: Duration,
) -> Result<PostResponse>
pub async fn await_with_timeout( &self, id: u64, rx: Receiver<PostResponse>, timeout: Duration, ) -> Result<PostResponse>
Await a response with timeout. On timeout or closed channel, cancels the id.
Trait Implementations§
Source§impl Debug for PostRouter
impl Debug for PostRouter
Auto Trait Implementations§
impl !Freeze for PostRouter
impl !RefUnwindSafe for PostRouter
impl Send for PostRouter
impl Sync for PostRouter
impl Unpin for PostRouter
impl !UnwindSafe for PostRouter
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
Mutably borrows from an owned value. Read more
§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>
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