Skip to main content

StopReport

Struct StopReport 

Source
pub struct StopReport {
    pub pid: u32,
    pub endpoint_closed: bool,
    pub process_gone: bool,
    pub frontmost_before: Option<String>,
    pub frontmost_after: Option<String>,
    pub frontmost_unchanged: bool,
    pub frontmost_states: Vec<String>,
    pub owned_never_frontmost: bool,
    pub owned_frontmost_pids: Vec<u32>,
    pub frontmost_pid_unavailable_samples: usize,
    pub owned_never_frontmost_failure: Option<String>,
}

Fields§

§pid: u32§endpoint_closed: bool§process_gone: bool§frontmost_before: Option<String>§frontmost_after: Option<String>§frontmost_unchanged: bool§frontmost_states: Vec<String>

Every distinct foreground state sampled during the session (empty when unmeasurable).

§owned_never_frontmost: bool

Every sampled foreground PID belonged to no app process started by this control session. This is the background invariant; frontmost_unchanged remains diagnostic only. macOS checks the started pid and every process under the bundle executable; Windows checks the started pid only (the owner of the foreground window, from GetForegroundWindow + GetWindowThreadProcessId, sampled every 20 ms). Both fail closed when a foreground owner exists but cannot be read. Other targets always report false for a non-visible launch.

§owned_frontmost_pids: Vec<u32>

Owned fixture PIDs observed in foreground, if any.

§frontmost_pid_unavailable_samples: usize

Foreground samples whose owner pid could not be read (macOS: the frontmost application; Windows: the foreground window’s owner). Any such sample makes owned_never_frontmost false: an unread owner proves nothing.

§owned_never_frontmost_failure: Option<String>

Why owned_never_frontmost is false, in words that tell “an owned app WAS frontmost” from “the frontmost pid could not be read” and from “the owned executable was never registered”. None when the guard holds or was not enforced.

Implementations§

Source§

impl StopReport

Source

pub fn permission_dialog(&self) -> Option<String>

The first sampled foreground name that belongs to a system permission-dialog agent. Positive evidence only: None does not prove no dialog appeared.

Trait Implementations§

Source§

impl Clone for StopReport

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 Debug for StopReport

Source§

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

Formats the value using the given formatter. 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> 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.