pub struct InputStreamRegistry { /* private fields */ }Expand description
Per-connection registry of in-flight input streams. Keyed by
stream_id, separate from the output-stream worker registry so an
input and an output stream may share one connection without
colliding (AC #2).
Implementations§
Source§impl InputStreamRegistry
impl InputStreamRegistry
pub fn new() -> InputStreamRegistry
Sourcepub fn register(
&mut self,
stream_id: u16,
state: InputStreamState,
) -> Result<(), RegisterError>
pub fn register( &mut self, stream_id: u16, state: InputStreamState, ) -> Result<(), RegisterError>
Register a freshly-opened input stream. Mirrors the output
registry’s reserved-id / duplicate guards and reuses its
RegisterError codes so clients see one taxonomy.
pub fn get_mut(&mut self, stream_id: u16) -> Option<&mut InputStreamState>
pub fn contains(&self, stream_id: u16) -> bool
Sourcepub fn remove(&mut self, stream_id: u16) -> Option<InputStreamState>
pub fn remove(&mut self, stream_id: u16) -> Option<InputStreamState>
Drop the stream from the registry, returning its state so the
caller can read final stats for a terminal frame. Idempotent —
a second remove returns None.
pub fn active_count(&self) -> usize
Trait Implementations§
Source§impl Default for InputStreamRegistry
impl Default for InputStreamRegistry
Source§fn default() -> InputStreamRegistry
fn default() -> InputStreamRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for InputStreamRegistry
impl RefUnwindSafe for InputStreamRegistry
impl Send for InputStreamRegistry
impl Sync for InputStreamRegistry
impl Unpin for InputStreamRegistry
impl UnsafeUnpin for InputStreamRegistry
impl UnwindSafe for InputStreamRegistry
Blanket Implementations§
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request