Skip to main content

CallContext

Struct CallContext 

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

What a handler knows about the request it is serving.

Implementations§

Source§

impl CallContext

Source

pub fn conn_id(&self) -> u64

Source

pub fn origin(&self) -> &Caller

Who is calling: a local app or a device.

Source

pub fn app(&self) -> &str

The app label the client declared in hello (already allowlisted); for a device caller, the device id.

The label is a claim: any process of the current user can declare any allowlisted label. Use it to choose what a caller may ask for, never as proof of who is asking. peer is what the OS verified.

Source

pub fn peer(&self) -> Option<&PeerIdentity>

Who the OS says is on the other end of this connection, from the peer check that ran before any byte was read: the uid on Unix, the user SID on Windows, and the process id where the platform reports it (Linux, macOS and Windows). None for a caller that is not a local app (a device has no OS peer).

This is the fact, as opposed to the app label. The user is always the current user, since any other peer was refused. A pid identifies the process only while it runs: record it for an audit trail, do not authorise by it later.

Source

pub fn peer_closed(&self) -> bool

The client went away while this request was running.

Source

pub fn handoff_requested(&self) -> bool

A higher-ranked host asked for the service: return ServiceError::handoff at the next safe boundary.

Trait Implementations§

Source§

impl Clone for CallContext

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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<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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.