pub struct WindV1 {
pub speed_mps: Option<f64>,
pub direction_from_rad: Option<f64>,
pub vertical_speed_mps: Option<f64>,
pub segments: Option<Vec<WindSegmentV1>>,
pub wind_reference: Option<WindReferenceV1>,
}Expand description
Constant or downrange-segmented wind.
Omit all fields for still air. A constant wind supplies both speed_mps and
direction_from_rad. Segmented wind supplies segments and no constant-wind fields.
Fields§
§speed_mps: Option<f64>§direction_from_rad: Option<f64>§vertical_speed_mps: Option<f64>§segments: Option<Vec<WindSegmentV1>>§wind_reference: Option<WindReferenceV1>Which frame every wind direction in this request is entered in (MBA-1368).
Omitted (or "shooter") = shooter-relative wind-FROM radians, byte-identical to
pre-1368 behavior. "compass" = earth-fixed bearings (0 = north) — the constant
direction_from_rad AND every segment’s — derived shooter-relative at resolve
time as bearing - shot.shot_azimuth_rad (normalized to [0, 2π)); the RESOLVED
wind echo therefore reports the converted shooter-relative direction (the QNH
fold-into-resolved-value precedent). Compass mode requires an explicit
shot.shot_azimuth_rad (a hard error otherwise, never a silent
treat-as-shooter-relative), and there is no resolved-DTO echo of the mode
itself (request-side additive field — the response shape is unchanged).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for WindV1
impl<'de> Deserialize<'de> for WindV1
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 StructuralPartialEq for WindV1
Auto Trait Implementations§
impl Freeze for WindV1
impl RefUnwindSafe for WindV1
impl Send for WindV1
impl Sync for WindV1
impl Unpin for WindV1
impl UnsafeUnpin for WindV1
impl UnwindSafe for WindV1
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.