#[non_exhaustive]pub enum DesktopError {
BackendUnavailable(String),
Com {
hresult: u32,
msg: String,
},
IconNotFound(IconId),
InvalidCurve(CurveError),
InvalidDuration(String),
InvalidGrid(String),
InvalidEffect(String),
UnsupportedPlatform,
WorkerCrashed(String),
AnimationBusy,
OverlayUnavailable(String),
OverlayCancelled(String),
}Expand description
Errors returned by desktop-facing operations.
#[non_exhaustive] so variants can be added without a breaking
change.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
The underlying backend could not be initialised or is temporarily
unavailable (e.g. the desktop IFolderView2 could not be acquired).
Com
A COM / Win32 call returned a failure HRESULT.
IconNotFound(IconId)
A requested icon was not present in the current enumeration.
InvalidCurve(CurveError)
A curve failed validation.
InvalidDuration(String)
A duration policy could not be resolved to a concrete Duration.
InvalidGrid(String)
InvalidEffect(String)
Shader source, constants or renderer contract is invalid.
UnsupportedPlatform
The current OS has no backend implementation.
WorkerCrashed(String)
The animation worker thread has stopped unexpectedly.
AnimationBusy
A concurrent animation is already in progress and the caller asked for exclusive access.
The backend cannot open a transparent overlay for animation
rendering — the platform doesn’t support it, or a compatibility
probe failed. The engine falls back to a direct
DesktopBackend::set_positions
teleport when it sees this variant (with a loud warning).
OverlayCancelled(String)
The overlay renderer aborted the current session because the environment underneath it changed in a way that invalidates its cached state — typically Explorer restarting, the display topology changing, or the shell view HWND vanishing.
The engine treats this as a graceful stop (equivalent to
FinishReason::Stopped(StopMode::TeleportToTarget)):
the real icons were teleported to their final positions on the
first overlay commit, so the animation ends at a correct steady
state. Finalisation runs as usual to unhide the real icons and
destroy the overlay window.
Trait Implementations§
Source§impl Debug for DesktopError
impl Debug for DesktopError
Source§impl Display for DesktopError
impl Display for DesktopError
Source§impl Error for DesktopError
impl Error for DesktopError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()