Struct doors::server::Response

source ·
pub struct Response<C: AsRef<[u8]>> {
    pub data: Option<C>,
    pub num_descriptors: u32,
    pub descriptors: [DoorFd; 2],
}
Expand description

Server-Side representation of the client’s door results

This type can refer to either memory on the stack (which will be cleaned up automatically when door_return is called) or memory on the heap (which will not). If you return an object that refers to memory on the heap, it is your responsibility to free it later.

Many door servers allocate a per-thread response area so that each thread can re-use this area for every door invocation assigned to it. That way the memory leaked is constant. Typically, applications that take this approach will free these per-thread response areas when the DOOR_UNREF message is sent.

Fields§

§data: Option<C>§num_descriptors: u32§descriptors: [DoorFd; 2]

Implementations§

source§

impl<C: AsRef<[u8]>> Response<C>

source

pub fn new(data: C) -> Self

source

pub fn empty() -> Self

source

pub fn add_descriptor(self, fd: RawFd, release: bool) -> Self

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for Response<C>where C: RefUnwindSafe,

§

impl<C> Send for Response<C>where C: Send,

§

impl<C> Sync for Response<C>where C: Sync,

§

impl<C> Unpin for Response<C>where C: Unpin,

§

impl<C> UnwindSafe for Response<C>where C: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.