pub struct ProcessRefreshKind { /* private fields */ }
Expand description
Used to determine what you want to refresh specifically on the Process
type.
When all refresh are ruled out, a Process
will still retrieve the following information:
- Process ID (
Pid
) - Parent process ID (on Windows it never changes though)
- Process name
- Start time
⚠️ Just like all other refresh types, ruling out a refresh doesn’t assure you that the information won’t be retrieved if the information is accessible without needing extra computation.
⚠️ ** Linux Specific ** ⚠️
When using ProcessRefreshKind::everything()
, in linux we will fetch all relevant
information from /proc/<pid>/
as well as all the information from /proc/<pid>/task/<tid>/
folders. This makes the refresh mechanism a lot slower depending on the number of tasks
each process has.
If you don’t care about tasks information, use ProcessRefreshKind::everything().without_tasks()
as much as possible.
use sysinfo::{ProcessesToUpdate, ProcessRefreshKind, System};
let mut system = System::new();
// We don't want to update the CPU information.
system.refresh_processes_specifics(
ProcessesToUpdate::All,
true,
ProcessRefreshKind::everything().without_cpu(),
);
for (_, proc_) in system.processes() {
// We use a `==` comparison on float only because we know it's set to 0 here.
assert_eq!(proc_.cpu_usage(), 0.);
}
Implementations§
Source§impl ProcessRefreshKind
impl ProcessRefreshKind
Sourcepub fn nothing() -> Self
pub fn nothing() -> Self
Creates a new ProcessRefreshKind
with every refresh set to false
, except for tasks
.
By default, we want to list all processes and tasks are considered processes on their own
in linux so we still fetch them by default. However, the processes information are not
refreshed.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.cpu(), false);
assert_eq!(r.user(), UpdateKind::Never);
Sourcepub fn everything() -> Self
pub fn everything() -> Self
Creates a new ProcessRefreshKind
with every refresh set to true
or
UpdateKind::OnlyIfNotSet
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.cpu(), true);
assert_eq!(r.user(), UpdateKind::OnlyIfNotSet);
Sourcepub fn cpu(&self) -> bool
pub fn cpu(&self) -> bool
Returns the value of the “cpu” refresh kind. It will retrieve both CPU usage and CPU accumulated time,
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_cpu();
assert_eq!(r.cpu(), true);
let r = r.without_cpu();
assert_eq!(r.cpu(), false);
Sourcepub fn with_cpu(self) -> Self
pub fn with_cpu(self) -> Self
Sets the value of the “cpu” refresh kind to true
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_cpu();
assert_eq!(r.cpu(), true);
Sourcepub fn without_cpu(self) -> Self
pub fn without_cpu(self) -> Self
Sets the value of the “cpu” refresh kind to false
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::everything();
assert_eq!(r.cpu(), true);
let r = r.without_cpu();
assert_eq!(r.cpu(), false);
Sourcepub fn disk_usage(&self) -> bool
pub fn disk_usage(&self) -> bool
Returns the value of the “disk_usage” refresh kind.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_disk_usage();
assert_eq!(r.disk_usage(), true);
let r = r.without_disk_usage();
assert_eq!(r.disk_usage(), false);
Sourcepub fn with_disk_usage(self) -> Self
pub fn with_disk_usage(self) -> Self
Sets the value of the “disk_usage” refresh kind to true
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_disk_usage();
assert_eq!(r.disk_usage(), true);
Sourcepub fn without_disk_usage(self) -> Self
pub fn without_disk_usage(self) -> Self
Sets the value of the “disk_usage” refresh kind to false
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::everything();
assert_eq!(r.disk_usage(), true);
let r = r.without_disk_usage();
assert_eq!(r.disk_usage(), false);
Sourcepub fn user(&self) -> UpdateKind
pub fn user(&self) -> UpdateKind
Returns the value of the “user” refresh kind. It will retrieve the following information:
- user ID
- user effective ID (if available on the platform)
- user group ID (if available on the platform)
- user effective ID (if available on the platform)
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.user(), UpdateKind::Never);
let r = r.with_user(UpdateKind::OnlyIfNotSet);
assert_eq!(r.user(), UpdateKind::OnlyIfNotSet);
let r = r.without_user();
assert_eq!(r.user(), UpdateKind::Never);
Sourcepub fn with_user(self, kind: UpdateKind) -> Self
pub fn with_user(self, kind: UpdateKind) -> Self
Sets the value of the “user” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.user(), UpdateKind::Never);
let r = r.with_user(UpdateKind::OnlyIfNotSet);
assert_eq!(r.user(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_user(self) -> Self
pub fn without_user(self) -> Self
Sets the value of the “user” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.user(), UpdateKind::OnlyIfNotSet);
let r = r.without_user();
assert_eq!(r.user(), UpdateKind::Never);
Sourcepub fn memory(&self) -> bool
pub fn memory(&self) -> bool
Returns the value of the “memory” refresh kind.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_memory();
assert_eq!(r.memory(), true);
let r = r.without_memory();
assert_eq!(r.memory(), false);
Sourcepub fn with_memory(self) -> Self
pub fn with_memory(self) -> Self
Sets the value of the “memory” refresh kind to true
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_memory();
assert_eq!(r.memory(), true);
Sourcepub fn without_memory(self) -> Self
pub fn without_memory(self) -> Self
Sets the value of the “memory” refresh kind to false
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::everything();
assert_eq!(r.memory(), true);
let r = r.without_memory();
assert_eq!(r.memory(), false);
Sourcepub fn cwd(&self) -> UpdateKind
pub fn cwd(&self) -> UpdateKind
Returns the value of the “cwd” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.cwd(), UpdateKind::Never);
let r = r.with_cwd(UpdateKind::OnlyIfNotSet);
assert_eq!(r.cwd(), UpdateKind::OnlyIfNotSet);
let r = r.without_cwd();
assert_eq!(r.cwd(), UpdateKind::Never);
Sourcepub fn with_cwd(self, kind: UpdateKind) -> Self
pub fn with_cwd(self, kind: UpdateKind) -> Self
Sets the value of the “cwd” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.cwd(), UpdateKind::Never);
let r = r.with_cwd(UpdateKind::OnlyIfNotSet);
assert_eq!(r.cwd(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_cwd(self) -> Self
pub fn without_cwd(self) -> Self
Sets the value of the “cwd” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.cwd(), UpdateKind::OnlyIfNotSet);
let r = r.without_cwd();
assert_eq!(r.cwd(), UpdateKind::Never);
Sourcepub fn root(&self) -> UpdateKind
pub fn root(&self) -> UpdateKind
Returns the value of the “root” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.root(), UpdateKind::Never);
let r = r.with_root(UpdateKind::OnlyIfNotSet);
assert_eq!(r.root(), UpdateKind::OnlyIfNotSet);
let r = r.without_root();
assert_eq!(r.root(), UpdateKind::Never);
Sourcepub fn with_root(self, kind: UpdateKind) -> Self
pub fn with_root(self, kind: UpdateKind) -> Self
Sets the value of the “root” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.root(), UpdateKind::Never);
let r = r.with_root(UpdateKind::OnlyIfNotSet);
assert_eq!(r.root(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_root(self) -> Self
pub fn without_root(self) -> Self
Sets the value of the “root” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.root(), UpdateKind::OnlyIfNotSet);
let r = r.without_root();
assert_eq!(r.root(), UpdateKind::Never);
Sourcepub fn environ(&self) -> UpdateKind
pub fn environ(&self) -> UpdateKind
Returns the value of the “environ” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.environ(), UpdateKind::Never);
let r = r.with_environ(UpdateKind::OnlyIfNotSet);
assert_eq!(r.environ(), UpdateKind::OnlyIfNotSet);
let r = r.without_environ();
assert_eq!(r.environ(), UpdateKind::Never);
Sourcepub fn with_environ(self, kind: UpdateKind) -> Self
pub fn with_environ(self, kind: UpdateKind) -> Self
Sets the value of the “environ” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.environ(), UpdateKind::Never);
let r = r.with_environ(UpdateKind::OnlyIfNotSet);
assert_eq!(r.environ(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_environ(self) -> Self
pub fn without_environ(self) -> Self
Sets the value of the “environ” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.environ(), UpdateKind::OnlyIfNotSet);
let r = r.without_environ();
assert_eq!(r.environ(), UpdateKind::Never);
Sourcepub fn cmd(&self) -> UpdateKind
pub fn cmd(&self) -> UpdateKind
Returns the value of the “cmd” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.cmd(), UpdateKind::Never);
let r = r.with_cmd(UpdateKind::OnlyIfNotSet);
assert_eq!(r.cmd(), UpdateKind::OnlyIfNotSet);
let r = r.without_cmd();
assert_eq!(r.cmd(), UpdateKind::Never);
Sourcepub fn with_cmd(self, kind: UpdateKind) -> Self
pub fn with_cmd(self, kind: UpdateKind) -> Self
Sets the value of the “cmd” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.cmd(), UpdateKind::Never);
let r = r.with_cmd(UpdateKind::OnlyIfNotSet);
assert_eq!(r.cmd(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_cmd(self) -> Self
pub fn without_cmd(self) -> Self
Sets the value of the “cmd” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.cmd(), UpdateKind::OnlyIfNotSet);
let r = r.without_cmd();
assert_eq!(r.cmd(), UpdateKind::Never);
Sourcepub fn exe(&self) -> UpdateKind
pub fn exe(&self) -> UpdateKind
Returns the value of the “exe” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.exe(), UpdateKind::Never);
let r = r.with_exe(UpdateKind::OnlyIfNotSet);
assert_eq!(r.exe(), UpdateKind::OnlyIfNotSet);
let r = r.without_exe();
assert_eq!(r.exe(), UpdateKind::Never);
Sourcepub fn with_exe(self, kind: UpdateKind) -> Self
pub fn with_exe(self, kind: UpdateKind) -> Self
Sets the value of the “exe” refresh kind.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::nothing();
assert_eq!(r.exe(), UpdateKind::Never);
let r = r.with_exe(UpdateKind::OnlyIfNotSet);
assert_eq!(r.exe(), UpdateKind::OnlyIfNotSet);
Sourcepub fn without_exe(self) -> Self
pub fn without_exe(self) -> Self
Sets the value of the “exe” refresh kind to UpdateKind::Never
.
use sysinfo::{ProcessRefreshKind, UpdateKind};
let r = ProcessRefreshKind::everything();
assert_eq!(r.exe(), UpdateKind::OnlyIfNotSet);
let r = r.without_exe();
assert_eq!(r.exe(), UpdateKind::Never);
Sourcepub fn tasks(&self) -> bool
pub fn tasks(&self) -> bool
Returns the value of the “tasks” refresh kind.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_tasks();
assert_eq!(r.tasks(), true);
let r = r.without_tasks();
assert_eq!(r.tasks(), false);
Sourcepub fn with_tasks(self) -> Self
pub fn with_tasks(self) -> Self
Sets the value of the “tasks” refresh kind to true
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::nothing();
let r = r.with_tasks();
assert_eq!(r.tasks(), true);
Sourcepub fn without_tasks(self) -> Self
pub fn without_tasks(self) -> Self
Sets the value of the “tasks” refresh kind to false
.
use sysinfo::ProcessRefreshKind;
let r = ProcessRefreshKind::everything();
assert_eq!(r.tasks(), true);
let r = r.without_tasks();
assert_eq!(r.tasks(), false);
Trait Implementations§
Source§impl Clone for ProcessRefreshKind
impl Clone for ProcessRefreshKind
Source§fn clone(&self) -> ProcessRefreshKind
fn clone(&self) -> ProcessRefreshKind
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ProcessRefreshKind
impl Debug for ProcessRefreshKind
Source§impl Default for ProcessRefreshKind
Creates a new ProcessRefreshKind
with every refresh set to false
, except for tasks
.
By default, we want to list all processes and tasks are considered processes on their own
in linux so we still fetch them by default. However, the processes information are not
refreshed.
impl Default for ProcessRefreshKind
Creates a new ProcessRefreshKind
with every refresh set to false
, except for tasks
.
By default, we want to list all processes and tasks are considered processes on their own
in linux so we still fetch them by default. However, the processes information are not
refreshed.
Source§impl PartialEq for ProcessRefreshKind
impl PartialEq for ProcessRefreshKind
impl Copy for ProcessRefreshKind
impl Eq for ProcessRefreshKind
impl StructuralPartialEq for ProcessRefreshKind
Auto Trait Implementations§
impl Freeze for ProcessRefreshKind
impl RefUnwindSafe for ProcessRefreshKind
impl Send for ProcessRefreshKind
impl Sync for ProcessRefreshKind
impl Unpin for ProcessRefreshKind
impl UnwindSafe for ProcessRefreshKind
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit
)