pub enum LeadError {
InvalidInput(String),
TargetOvertakesShooter {
corrected_range_m: f64,
},
Convergence {
iterations: u32,
residual_m: f64,
},
BeyondSolvedSpan {
corrected_range_m: f64,
solved_span_m: f64,
},
Solver(BallisticsError),
}Expand description
Typed failure modes for calculate_lead.
Variants§
InvalidInput(String)
Non-finite or out-of-domain input (negative speed, range ≤ 0, non-finite angle).
TargetOvertakesShooter
An inbound target closes to (or past) the shooter before intercept: the corrected range collapsed to ≤ 0 m.
Convergence
The intercept-range iteration failed to reach RANGE_TOLERANCE_M within
MAX_ITERATIONS (physically requires a radial speed comparable to the
projectile’s remaining velocity).
BeyondSolvedSpan
The intercept range moved beyond the distance the trajectory solve covered (an outbound target outrunning the solve’s headroom, or a solve that terminated early — e.g. ground impact — before reaching it).
Solver(BallisticsError)
The underlying trajectory solve failed (invalid ballistic inputs, etc.).
Trait Implementations§
Source§impl Error for LeadError
impl Error for LeadError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<BallisticsError> for LeadError
impl From<BallisticsError> for LeadError
Source§fn from(e: BallisticsError) -> Self
fn from(e: BallisticsError) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for LeadError
impl RefUnwindSafe for LeadError
impl Send for LeadError
impl Sync for LeadError
impl Unpin for LeadError
impl UnsafeUnpin for LeadError
impl UnwindSafe for LeadError
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
Mutably borrows from an owned value. Read more
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.