Skip to main content

ConnectionMembership

Struct ConnectionMembership 

Source
pub struct ConnectionMembership { /* private fields */ }
Expand description

One connection’s membership binding (ACCESS-006 R1, R6): the gate, the connection’s id and the verified subject from its one Connect, or the exact reason it has none.

Dropped with the connection’s state on every teardown path, releasing the bindings it held.

Implementations§

Source§

impl ConnectionMembership

Source

pub fn bind( gate: Option<Arc<MembershipGate>>, pid: u64, session: Option<&dyn LysSession>, ) -> Self

Binds connection pid at Connect: the subject is the admitted Lys session’s holder, or none. Without a gate nothing is protected.

Source

pub fn gate(&self) -> Option<&Arc<MembershipGate>>

The gate, when one is bound.

Source

pub fn holder(&self) -> Result<&MembershipSubject, MembershipRefusal>

The verified subject, or why there is none.

§Errors

MembershipRefusal::HolderUnverified without a gate or a holder; the subject’s own refusal otherwise.

Source

pub fn admit_connect(&self) -> Result<Option<u64>, MembershipRefusal>

Scoped guest admission for this connection’s holder at Connect.

§Errors

As for MembershipGate::admit_connect; the holder’s own refusal.

Source

pub fn check( &self, channel: &str, action: MembershipAction, ) -> Result<Decided, MembershipRefusal>

Decides action on channel for this connection.

§Errors

As for MembershipGate::check; a protected channel on a connection with no verified subject refuses with that subject’s cause.

Source

pub fn release( &self, channel: &str, action: MembershipAction, ) -> Result<Decided, MembershipRefusal>

Self::check at a final data-release seam.

§Errors

As for Self::check.

Source

pub fn release_conversation( &self, conversation: u64, ) -> Result<Decided, MembershipRefusal>

Self::release for a participant conversation, on the channel the mapping places it under; an unmapped conversation is not protected.

§Errors

As for Self::check.

Source§

impl ConnectionMembership

Source

pub fn release_check( &self, channel: &str, action: MembershipAction, ) -> Option<ReleaseCheck>

The final release check a queued delivery owner carries for action on the protected channel (ACCESS-006 R3): None when the channel is not protected or the connection has no verified subject (its admission was already refused, so no such owner exists).

Trait Implementations§

Source§

impl Debug for ConnectionMembership

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ConnectionMembership

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for ConnectionMembership

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more