Skip to main content

SessionDeadline

Struct SessionDeadline 

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

The hard limit a session runs under: its own mur run --deadline, or the moment it inherited from the formation or capsule that launched it.

Both clocks are read once, at the session’s start. The monotonic one is what the runtime enforces and counts down against; the wall one is only what at is spelled from, so a clock change during the session moves neither the enforcement nor left_secs.

Implementations§

Source§

impl SessionDeadline

Source

pub fn after(started: Instant, started_wall: SystemTime, secs: u64) -> Self

The deadline secs after a start read as started and started_wall. A secs above MAX_DEADLINE_SECS is taken as that bound.

Source

pub fn until( started: Instant, started_wall: SystemTime, at_wall: SystemTime, ) -> Self

The inherited deadline at the wall moment at_wall, for a session whose start was read as started and started_wall. What is left is at_wall - started_wall: zero when the moment has passed, and at most MAX_DEADLINE_SECS, beyond which at is that bound.

Source

pub fn from_unix_millis( started: Instant, started_wall: SystemTime, millis: u64, ) -> Self

SessionDeadline::until the moment millis milliseconds after the Unix epoch, as INHERITED_DEADLINE_FLAG carries it. A moment the wall clock cannot hold is taken as the bound.

Source

pub fn at_unix_millis(&self) -> u64

at in whole milliseconds since the Unix epoch, the value INHERITED_DEADLINE_FLAG carries. Truncated, so the moment a session inherits is never later than this one and spells the same second.

Source

pub fn earliest(own: Option<Self>, inherited: Option<Self>) -> Option<Self>

The session’s deadline: the earlier of its own and the inherited one, the inherited one on a tie, and None when it has neither. Both must have been read against the same start.

Source

pub fn secs(&self) -> u64

Seconds from the session’s start to at: the --deadline value for an own deadline, and rounded up, 0 once passed, for an inherited one.

Source

pub fn source(&self) -> DeadlineSource

Where the deadline came from.

Source

pub fn at_rfc3339(&self) -> String

When the runtime ends the session, as RFC 3339 UTC to the second.

Source

pub fn left(&self, now: Instant) -> Duration

How long is left at now; zero once the deadline has passed.

Trait Implementations§

Source§

impl Clone for SessionDeadline

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
Source§

impl Copy for SessionDeadline

Source§

impl Debug for SessionDeadline

Source§

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

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

impl Eq for SessionDeadline

Source§

impl PartialEq for SessionDeadline

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SessionDeadline

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
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