dope_sys/engine/admit/raw.rs
1use crate::{
2 engine::admit::Context,
3 io::{file, request},
4};
5
6type Borrowed<'a, C> = request::Borrowed<'a, <<<C as Context>::Native as request::Source<
7 <C as Context>::Inputs,
8>>::Raw as request::Lower>::Target>;
9type File<'a, C> = <<C as Context>::Native as file::File>::Request<'a>;
10
11/// Consumes the exact native requests whose pointees remain owned by the host.
12pub trait Retain<C: Context>: Sized {
13 /// # Safety
14 /// Every encoded address remains live through terminal completion or quiescence.
15 unsafe fn retain(self, request: Borrowed<'_, C>, key: C::Key);
16
17 /// # Safety
18 /// Every file request borrow remains live through terminal completion or quiescence.
19 unsafe fn file(self, request: File<'_, C>, key: C::Key);
20}