#[non_exhaustive]pub enum Finding {
Show 38 variants
ObsFatalParse {
at: FindingRef,
message: String,
},
ObsUnpublishedVersion {
at: FindingRef,
version: f64,
},
ObsMissingHeader {
at: FindingRef,
label: &'static str,
},
ObsMissingObsTypes {
at: FindingRef,
},
ObsInvalidObsCode {
at: FindingRef,
system: GnssSystem,
code: String,
},
ObsDuplicateObsCode {
at: FindingRef,
system: GnssSystem,
code: String,
},
ObsTimeOfFirstMismatch {
at: FindingRef,
declared: ObsEpochTime,
declared_scale: TimeScale,
observed: ObsEpochTime,
observed_scale: TimeScale,
},
ObsTimeOfLastMismatch {
at: FindingRef,
declared: ObsEpochTime,
declared_scale: TimeScale,
observed: ObsEpochTime,
observed_scale: TimeScale,
},
ObsIntervalMismatch {
at: FindingRef,
declared_s: f64,
observed_s: f64,
},
ObsSatelliteCountMismatch {
at: FindingRef,
declared: usize,
observed: usize,
},
ObsPrnObsCountMismatch {
at: FindingRef,
satellite: GnssSatelliteId,
code: String,
declared: Option<usize>,
observed: usize,
},
ObsGlonassSlotIssue {
at: FindingRef,
satellite: GnssSatelliteId,
issue: &'static str,
},
ObsPhaseShiftUndeclaredCode {
at: FindingRef,
system: GnssSystem,
code: String,
},
ObsScaleFactorIssue {
at: FindingRef,
system: GnssSystem,
code: Option<String>,
},
ObsMarkerTypeIssue {
at: FindingRef,
marker_type: String,
},
ObsIdentityFieldIssue {
at: FindingRef,
label: &'static str,
value: String,
},
ObsImplausibleApproxPosition {
at: FindingRef,
radius_m: f64,
},
ObsImplausibleAntennaDelta {
at: FindingRef,
component: usize,
value_m: f64,
},
ObsEpochOrder {
at: FindingRef,
previous: ObsEpochTime,
current: ObsEpochTime,
},
ObsDuplicateEpoch {
at: FindingRef,
epoch: ObsEpochTime,
},
ObsSkippedRecords {
at: FindingRef,
count: usize,
},
ObsEpochSatCountMismatch {
at: FindingRef,
declared: usize,
retained: usize,
},
ObsEventSpecialRecords {
at: FindingRef,
count: usize,
},
ObsUnretainedHeader {
at: FindingRef,
label: String,
},
ObsPseudorangeOutOfRange {
at: FindingRef,
code: String,
value_m: f64,
},
ObsLossOfLockOutOfRange {
at: FindingRef,
code: String,
lli: u8,
},
ObsEventEpoch {
at: FindingRef,
flag: u8,
},
ObsEmptySatelliteRecord {
at: FindingRef,
},
ObsEpochGap {
at: FindingRef,
gap_s: f64,
interval_s: f64,
},
NavFatalParse {
at: FindingRef,
message: String,
},
NavLeapSecondsAbsent {
at: FindingRef,
},
NavIonoMalformed {
at: FindingRef,
message: String,
},
NavDroppedBlock {
at: FindingRef,
satellite: String,
message: String,
},
NavDuplicateRecord {
at: FindingRef,
satellite: GnssSatelliteId,
same_payload: bool,
},
NavUnsortedRecords {
at: FindingRef,
},
NavImplausibleRecord {
at: FindingRef,
satellite: GnssSatelliteId,
field: &'static str,
value: f64,
},
NavUnhealthyRecords {
at: FindingRef,
system: GnssSystem,
count: usize,
},
NavOutOfScopeRecords {
at: FindingRef,
class: String,
count: usize,
},
}Expand description
A typed RINEX lint finding.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ObsFatalParse
OBS parse failed before a parsed product existed.
ObsUnpublishedVersion
OBS version is not one of the published versions covered here.
ObsMissingHeader
A mandatory OBS header retained by the current product is absent.
ObsMissingObsTypes
OBS header has no observation-code table.
Fields
at: FindingRefObsInvalidObsCode
OBS code syntax is not valid for this first slice.
ObsDuplicateObsCode
OBS code is duplicated in one system table.
ObsTimeOfFirstMismatch
TIME OF FIRST OBS disagrees with the body.
ObsTimeOfLastMismatch
TIME OF LAST OBS disagrees with the body epoch or with the file time system declared by TIME OF FIRST OBS (RINEX 3.05: TIME OF FIRST OBS defines the time system; TIME OF LAST OBS must agree with it).
ObsIntervalMismatch
INTERVAL disagrees with the dominant epoch spacing.
ObsSatelliteCountMismatch
§OF SATELLITES disagrees with the body.
ObsPrnObsCountMismatch
PRN / # OF OBS disagrees with body tallies.
ObsGlonassSlotIssue
GLONASS observations need a valid slot/frequency table.
ObsPhaseShiftUndeclaredCode
SYS / PHASE SHIFT names a code absent from SYS / # / OBS TYPES.
ObsScaleFactorIssue
SYS / SCALE FACTOR is invalid or names an undeclared code.
ObsMarkerTypeIssue
MARKER TYPE is not a RINEX Table 8 keyword.
ObsIdentityFieldIssue
Identity/header field exceeds width or has non-printable ASCII.
ObsImplausibleApproxPosition
Approximate position is implausible for a fixed marker.
ObsImplausibleAntennaDelta
Antenna height/east/north offset is implausible.
ObsEpochOrder
Epoch times are not strictly increasing.
ObsDuplicateEpoch
Two normal epochs carry the same timestamp.
ObsSkippedRecords
The parser skipped satellite records it could not represent.
ObsEpochSatCountMismatch
Epoch record count disagreed with retained satellite records.
ObsEventSpecialRecords
A retained event epoch had special records that are not retained.
ObsUnretainedHeader
Header record is outside the retained OBS product.
ObsPseudorangeOutOfRange
A pseudorange value is outside the configured plausibility window.
ObsLossOfLockOutOfRange
LLI digit is outside the three defined bits.
ObsEventEpoch
Event epoch retained with no special records.
ObsEmptySatelliteRecord
Satellite record has all observation fields blank.
Fields
at: FindingRefObsEpochGap
Epoch gap is larger than 1.5 times the dominant interval.
NAV parse failed before a parsed product existed.
NAV header has no LEAP SECONDS record.
NAV ionospheric correction records are malformed.
NAV record block was dropped by lenient parsing.
Duplicate NAV records share an identity.
NAV records are not in canonical order.
NAV broadcast fields are outside this slice’s plausibility limits.
NAV records include unhealthy satellite records.
NAV records outside the retained/writable scope are present.
Implementations§
Source§impl Finding
impl Finding
Sourcepub const fn at(&self) -> &FindingRef
pub const fn at(&self) -> &FindingRef
Finding location.
Sourcepub const fn is_repairable(&self) -> bool
pub const fn is_repairable(&self) -> bool
Whether this finding can be changed by the repair helpers in this slice.
Trait Implementations§
impl StructuralPartialEq for Finding
Auto Trait Implementations§
impl Freeze for Finding
impl RefUnwindSafe for Finding
impl Send for Finding
impl Sync for Finding
impl Unpin for Finding
impl UnsafeUnpin for Finding
impl UnwindSafe for Finding
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,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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.