pub struct SolveSummaryV1 {
pub actual_range_m: f64,
pub maximum_height_m: f64,
pub time_of_flight_s: f64,
pub terminal_speed_mps: f64,
pub terminal_energy_j: f64,
pub stability_factor: Option<f64>,
pub spin_drift_m: Option<f64>,
pub equivalent_horizontal_range_m: Option<f64>,
pub termination: TerminationReasonV1,
}Expand description
Aggregate observations for a completed solve.
Fields§
§actual_range_m: f64§maximum_height_m: f64Greatest world-vertical projectile height above the request’s local ground/reference datum. This is not shot-frame Y and is not height above the line of sight.
time_of_flight_s: f64§terminal_speed_mps: f64§terminal_energy_j: f64§stability_factor: Option<f64>Muzzle gyroscopic stability factor Sg evaluated with the resolved projectile, muzzle velocity, twist, and station atmosphere; absent only when it cannot be calculated.
spin_drift_m: Option<f64>Signed gyroscopic spin-drift contribution at the terminal sample, positive to the shooter’s right. This excludes wind drift and is absent when the effect is disabled or cannot be calculated.
equivalent_horizontal_range_m: Option<f64>Equivalent horizontal range for an inclined shot (MBA-1395): the flat-fire range
whose angular elevation correction against the same zero matches the inclined
solution’s at the terminal range — the BDC “shoot-to” range (SIG AMR / Leica EHR
style, angular-match inversion, not the rifleman’s-rule cosine). Present only when
shot.shooting_angle_rad != 0, a zero_distance_m was solved, and the inverse is
well-defined (terminal past the zero range, positive correction); absent otherwise
— responses that predate the field, and every flat solve, are byte-identical.
termination: TerminationReasonV1Trait Implementations§
Source§impl Clone for SolveSummaryV1
impl Clone for SolveSummaryV1
Source§fn clone(&self) -> SolveSummaryV1
fn clone(&self) -> SolveSummaryV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SolveSummaryV1
impl Debug for SolveSummaryV1
Source§impl<'de> Deserialize<'de> for SolveSummaryV1
impl<'de> Deserialize<'de> for SolveSummaryV1
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>,
Source§impl PartialEq for SolveSummaryV1
impl PartialEq for SolveSummaryV1
Source§impl Serialize for SolveSummaryV1
impl Serialize for SolveSummaryV1
impl StructuralPartialEq for SolveSummaryV1
Auto Trait Implementations§
impl Freeze for SolveSummaryV1
impl RefUnwindSafe for SolveSummaryV1
impl Send for SolveSummaryV1
impl Sync for SolveSummaryV1
impl Unpin for SolveSummaryV1
impl UnsafeUnpin for SolveSummaryV1
impl UnwindSafe for SolveSummaryV1
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>,
impl<T> Scalar for T
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.