pub struct ControlSession {
pub lease: Arc<InputLease>,
pub gate: Arc<EffectGate>,
}Expand description
A lease-fenced, admission-gated control session: input must first pass PTY-002 fencing/sequencing (a stale controller never even reaches the hook), then EFF-001 admission, then executes and settles.
Fields§
§lease: Arc<InputLease>§gate: Arc<EffectGate>Implementations§
Source§impl ControlSession
impl ControlSession
pub fn new(lease: Arc<InputLease>, gate: Arc<EffectGate>) -> Self
Sourcepub fn input<T>(
&self,
epoch: u64,
sequence: u64,
request: EffectRequest,
cancel: &CancelToken,
execute: impl FnOnce(&CancelToken) -> Result<T, ExecError>,
) -> Result<InputOutcome<T>, InputError>
pub fn input<T>( &self, epoch: u64, sequence: u64, request: EffectRequest, cancel: &CancelToken, execute: impl FnOnce(&CancelToken) -> Result<T, ExecError>, ) -> Result<InputOutcome<T>, InputError>
Lease-checked, admission-gated input. Denials and pre-execute
cancellation release the sequence (NotDelivered); a failure, panic
or cancellation after the executor started leaves it unacknowledged
(Ambiguous).
Trait Implementations§
Source§impl Clone for ControlSession
impl Clone for ControlSession
Auto Trait Implementations§
impl !RefUnwindSafe for ControlSession
impl !UnwindSafe for ControlSession
impl Freeze for ControlSession
impl Send for ControlSession
impl Sync for ControlSession
impl Unpin for ControlSession
impl UnsafeUnpin for ControlSession
Blanket Implementations§
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