pub struct HoldBounds {
pub up_mil: f64,
pub down_mil: f64,
pub left_mil: f64,
pub right_mil: f64,
}Expand description
A reticle’s usable hold extent in each direction, TRUE angular mil, relative to the reticle’s own center. All four fields are magnitudes — never negative.
This is an EXPLICIT input describing the scope’s actual usable optical extent —
typically read off the manufacturer’s spec sheet or a bench measurement — and must
NEVER be derived from crate::reticle::ReticleDescription. That type’s off_reticle
bounding box is grown from wherever someone chose to author hash marks, padded by a
fixed margin fraction; it describes an authoring choice, not the glass. A reticle can
be drawn with marks stopping well short of where the image circle actually vignettes,
or drawn past it. Treating one as a proxy for the other would silently misstate how
far a shooter can actually hold.
Fields§
§up_mil: f64§down_mil: f64§left_mil: f64§right_mil: f64Trait Implementations§
Source§impl Clone for HoldBounds
impl Clone for HoldBounds
Source§fn clone(&self) -> HoldBounds
fn clone(&self) -> HoldBounds
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 HoldBounds
impl Debug for HoldBounds
Source§impl<'de> Deserialize<'de> for HoldBounds
impl<'de> Deserialize<'de> for HoldBounds
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 HoldBounds
impl PartialEq for HoldBounds
Source§impl Serialize for HoldBounds
impl Serialize for HoldBounds
impl StructuralPartialEq for HoldBounds
Auto Trait Implementations§
impl Freeze for HoldBounds
impl RefUnwindSafe for HoldBounds
impl Send for HoldBounds
impl Sync for HoldBounds
impl Unpin for HoldBounds
impl UnsafeUnpin for HoldBounds
impl UnwindSafe for HoldBounds
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.