pub struct ProcessKey {
pub pid: u64,
pub start_time: Option<u64>,
pub boot_id: Option<String>,
}Expand description
OS process identity that survives PID reuse.
pid alone is not an identity: the OS recycles PIDs, so a probe that
addressed a process by pid could act on an unrelated process that inherited
the number. start_time pins the identity to a specific process instance,
and boot_id distinguishes instances across reboots (start times restart
from the same epoch after a boot).
Both qualifiers are optional because not every OS exposes them cheaply; callers that omit them get pid-only addressing and accept the reuse risk.
Fields§
§pid: u64§start_time: Option<u64>Linux: starttime from /proc/
boot_id: Option<String>Linux: /proc/sys/kernel/random/boot_id. Absent elsewhere.
Implementations§
Source§impl ProcessKey
impl ProcessKey
Trait Implementations§
Source§impl Clone for ProcessKey
impl Clone for ProcessKey
Source§fn clone(&self) -> ProcessKey
fn clone(&self) -> ProcessKey
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProcessKey
impl Debug for ProcessKey
Source§impl Default for ProcessKey
impl Default for ProcessKey
impl Eq for ProcessKey
Source§impl Hash for ProcessKey
impl Hash for ProcessKey
Source§impl Message for ProcessKey
impl Message for ProcessKey
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message to a buffer. Read more
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message to a newly allocated buffer.
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Encodes the message with a length-delimiter to a buffer. Read more
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Encodes the message with a length-delimiter to a newly allocated buffer.
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes an instance of the message from a buffer. Read more
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes an instance of the message from a buffer, and merges it into
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
Decodes a length-delimited instance of the message from buffer, and
merges it into
self.Source§impl PartialEq for ProcessKey
impl PartialEq for ProcessKey
impl StructuralPartialEq for ProcessKey
Auto Trait Implementations§
impl Freeze for ProcessKey
impl RefUnwindSafe for ProcessKey
impl Send for ProcessKey
impl Sync for ProcessKey
impl Unpin for ProcessKey
impl UnsafeUnpin for ProcessKey
impl UnwindSafe for ProcessKey
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