pub struct DetectionContext { /* private fields */ }Expand description
Process-wide detection cache.
Provides “cache on first read” semantics for OS detection queries
(is_dark, reduced_motion, icon_theme, linux_desktop) and
per-field invalidation for watchers that need fresh data.
Obtain the process-wide instance via system().
§Thread Safety
All reads and invalidations are lock-free (backed by
arc_swap::ArcSwapOption).
Implementations§
Source§impl DetectionContext
impl DetectionContext
Sourcepub fn is_dark(&self) -> bool
pub fn is_dark(&self) -> bool
Whether the system is using a dark color scheme (cached).
The first call queries the OS and caches the result.
Subsequent calls return the cached value.
Call invalidate_is_dark() to
force a re-read on the next call.
Sourcepub fn prefers_reduced_motion(&self) -> bool
pub fn prefers_reduced_motion(&self) -> bool
Whether the user prefers reduced motion (cached).
The first call queries the OS and caches the result.
Call invalidate_reduced_motion()
to force a re-read.
Sourcepub fn icon_theme(&self) -> Result<String>
pub fn icon_theme(&self) -> Result<String>
The current icon theme name (cached), or why none was detected.
The first call detects the theme from the OS and caches the
outcome, a failure included, so a failed detection is not
repeated on every call; subsequent calls return the cached
outcome. Call
invalidate_icon_theme() to
force a re-read.
§Errors
As system_icon_theme(): no
theme stands in for one that could not be detected.
Sourcepub fn linux_desktop(&self) -> LinuxDesktop
pub fn linux_desktop(&self) -> LinuxDesktop
The current Linux desktop environment (cached).
The first call reads XDG_CURRENT_DESKTOP and caches the
result. Call
invalidate_linux_desktop()
to force a re-read.
Sourcepub fn invalidate_is_dark(&self)
pub fn invalidate_is_dark(&self)
Clear the cached dark-mode value.
Sourcepub fn invalidate_reduced_motion(&self)
pub fn invalidate_reduced_motion(&self)
Clear the cached reduced-motion value.
Sourcepub fn invalidate_icon_theme(&self)
pub fn invalidate_icon_theme(&self)
Clear the cached icon theme, or the cached failure to detect one.
Sourcepub fn invalidate_linux_desktop(&self)
pub fn invalidate_linux_desktop(&self)
Clear the cached Linux desktop environment.
Sourcepub fn invalidate_all(&self)
pub fn invalidate_all(&self)
Clear all cached values.