pub enum ProbePhase {
Setup,
BootPreArm,
Runtime,
}Expand description
When a probe runs.
Some probes are read-only (sysfs, device-tree, ioctl-query) and safe in any
phase. Others are destructive or stateful — a video encoder trial-init
opens and configures a real device, anything that toggles a GPIO or resets a
peripheral mutates hardware state. Destructive / stateful probes are
FORBIDDEN unless phase != Runtime while the vehicle is armed. Run them at
ProbePhase::Setup or ProbePhase::BootPreArm, cache the result, and
read the cache during armed runtime.
Variants§
Setup
Operator-driven setup (the safest window; full trial-init allowed).
BootPreArm
Boot, before the vehicle can arm (trial-init allowed).
Runtime
Live runtime. Read-only probes only; destructive probes must read the cached Setup / BootPreArm result, never re-run while armed.
Implementations§
Source§impl ProbePhase
impl ProbePhase
Sourcepub fn allows_destructive(&self) -> bool
pub fn allows_destructive(&self) -> bool
True if a destructive / stateful probe (encoder trial-init, anything that toggles a device) may run in this phase.
Trait Implementations§
Source§impl Clone for ProbePhase
impl Clone for ProbePhase
impl Copy for ProbePhase
Source§impl Debug for ProbePhase
impl Debug for ProbePhase
Source§impl<'de> Deserialize<'de> for ProbePhase
impl<'de> Deserialize<'de> for ProbePhase
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ProbePhase
Source§impl PartialEq for ProbePhase
impl PartialEq for ProbePhase
Source§impl Serialize for ProbePhase
impl Serialize for ProbePhase
impl StructuralPartialEq for ProbePhase
Auto Trait Implementations§
impl Freeze for ProbePhase
impl RefUnwindSafe for ProbePhase
impl Send for ProbePhase
impl Sync for ProbePhase
impl Unpin for ProbePhase
impl UnsafeUnpin for ProbePhase
impl UnwindSafe for ProbePhase
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.