pub struct ObserverEvent {
pub category: EventCategory,
pub kind: ObserverEventKind,
pub pid: u32,
pub ppid: Option<u32>,
pub timestamp_ms: u128,
}Expand description
A single observation emitted by the lifecycle baseline.
Fields§
§category: EventCategoryWhich category produced the event. Always
EventCategory::Lifecycle in Phase 1.
kind: ObserverEventKindWhat happened.
pid: u32OS process id of the observed child.
ppid: Option<u32>Immediate parent of pid, when the producing backend knows it.
Populated for ObserverEventKind::DescendantStarted on Linux
(the /proc children walk names the parent) and macOS (the
process snapshot carries it); None on Windows, whose job-object
notification is PID-only, and for every non-descendant event,
where the parent is the observed root itself.
timestamp_ms: u128Milliseconds since the Unix epoch when the event was recorded.
Implementations§
Source§impl ObserverEvent
impl ObserverEvent
Sourcepub fn new_now(
category: EventCategory,
kind: ObserverEventKind,
pid: u32,
) -> Self
pub fn new_now( category: EventCategory, kind: ObserverEventKind, pid: u32, ) -> Self
Construct an event stamped with the current wall-clock time.
Crate-public sibling of the private now constructor for the daemon’s
per-session observer registry (#221 Phase 2 / #429), which emits
lifecycle events directly without going through the crate-private
ObserverEmitter.
Sourcepub fn new_now_with_parent(
category: EventCategory,
kind: ObserverEventKind,
pid: u32,
ppid: Option<u32>,
) -> Self
pub fn new_now_with_parent( category: EventCategory, kind: ObserverEventKind, pid: u32, ppid: Option<u32>, ) -> Self
Construct an event carrying the descendant’s parent pid, stamping it with the current wall-clock time.
Trait Implementations§
Source§impl Clone for ObserverEvent
impl Clone for ObserverEvent
Source§fn clone(&self) -> ObserverEvent
fn clone(&self) -> ObserverEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ObserverEvent
impl Debug for ObserverEvent
impl Eq for ObserverEvent
Source§impl PartialEq for ObserverEvent
impl PartialEq for ObserverEvent
impl StructuralPartialEq for ObserverEvent
Auto Trait Implementations§
impl Freeze for ObserverEvent
impl RefUnwindSafe for ObserverEvent
impl Send for ObserverEvent
impl Sync for ObserverEvent
impl Unpin for ObserverEvent
impl UnsafeUnpin for ObserverEvent
impl UnwindSafe for ObserverEvent
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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