pub struct Process {
pub pid: i32,
pub text: String,
pub status: i32,
pub ti: timeinfo,
pub bgtime: Option<Instant>,
pub endtime: Option<Instant>,
}Expand description
Port of struct process from Src/zsh.h:1117-1125.
Field-shape deviations from the C struct (documented for the
zsh.h ↔ zsh_h.rs audit):
text:Stringinstead ofchar text[JOBTEXTSIZE]. TheJOBTEXTSIZEcap in C is a buffer-overflow guard; Rust’s owned String removes the cap without losing the field’s semantic.bgtime/endtime:Option<std::time::Instant>instead ofstruct timespec. C uses timespec for monotonic-clock points; Rust’sInstantis the equivalent abstraction.nextremoved: C threadsstruct process *nextfor the in-job singly-linked list; Rust port owns the list externally viajob.procs: Vec<process>so callers don’t carry the chain pointer per node.
Fields§
§pid: i32§text: String§status: i32§ti: timeinfo§bgtime: Option<Instant>§endtime: Option<Instant>Implementations§
Source§impl process
impl process
Sourcepub fn new(pid: i32) -> process
pub fn new(pid: i32) -> process
Build a fresh entry. Matches C’s update_process() init shape
(Src/jobs.c:363 — pn->pid = pid; pn->status = SP_RUNNING;
before the first wait).
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
SP_RUNNING sentinel check — equivalent to C’s pn->status == SP_RUNNING test at e.g. Src/jobs.c:1242.
Sourcepub fn is_stopped(&self) -> bool
pub fn is_stopped(&self) -> bool
Mirrors C’s WIFSTOPPED(status) macro.
Sourcepub fn is_signaled(&self) -> bool
pub fn is_signaled(&self) -> bool
Mirrors C’s WIFSIGNALED(status) macro.
Sourcepub fn exit_status(&self) -> i32
pub fn exit_status(&self) -> i32
Mirrors C’s WEXITSTATUS(status) macro.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for process
impl RefUnwindSafe for process
impl Send for process
impl Sync for process
impl Unpin for process
impl UnsafeUnpin for process
impl UnwindSafe for process
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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 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>
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.