pub struct AxisInstruction {
pub axis: Axis,
pub direction: Direction,
pub delta_clicks: i64,
pub target_clicks_from_zero: i64,
pub end_revolution: Option<(u32, u32)>,
pub dial_mil_true: f64,
pub hold_mil: f64,
pub residual_mil: f64,
}Expand description
One axis’s executable instruction within a DialPlan (MBA-1348).
Fields§
§axis: Axis§direction: DirectionFor the DELTA actually dialed (delta_clicks’s sign) – not for the correction’s
own sign.
delta_clicks: i64Clicks to turn from OpticProfile::turret_state (or zero, if absent) to
target_clicks_from_zero. Positive is up/right, matching direction.
target_clicks_from_zero: i64The DIAL setting this instruction ends at, measured from zero – NOT from
turret_state. See the turret_state_shifts_delta_but_not_target test.
end_revolution: Option<(u32, u32)>revolution_annotation(target_clicks_from_zero, clicks_per_revolution): None
when clicks_per_revolution is undeclared, or target_clicks_from_zero is
negative (see that function’s own contract).
dial_mil_true: f64What the dial EXECUTES in TRUE angular mil: target_clicks_from_zero as f64 * click_size_mil(click) * cf. Zero for Strategy::HoldAll.
hold_mil: f64The TRUE angular reticle hold component, mil (+ = over/right). Zero for
Strategy::DialAll.
residual_mil: f64correction − dial_mil_true − hold_mil: the honest, post-execution miss on this
axis. Exactly 0.0 for Strategy::Hybrid (an identity by construction – hold_mil
is DEFINED as whatever makes this exact – not an approximation that merely happens
to come out small).
Trait Implementations§
Source§impl Clone for AxisInstruction
impl Clone for AxisInstruction
Source§fn clone(&self) -> AxisInstruction
fn clone(&self) -> AxisInstruction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AxisInstruction
Source§impl Debug for AxisInstruction
impl Debug for AxisInstruction
Source§impl<'de> Deserialize<'de> for AxisInstruction
impl<'de> Deserialize<'de> for AxisInstruction
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 AxisInstruction
impl PartialEq for AxisInstruction
Source§impl Serialize for AxisInstruction
impl Serialize for AxisInstruction
impl StructuralPartialEq for AxisInstruction
Auto Trait Implementations§
impl Freeze for AxisInstruction
impl RefUnwindSafe for AxisInstruction
impl Send for AxisInstruction
impl Sync for AxisInstruction
impl Unpin for AxisInstruction
impl UnsafeUnpin for AxisInstruction
impl UnwindSafe for AxisInstruction
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.