#![doc(
html_logo_url = "https://raw.githubusercontent.com/nav-solutions/.github/master/logos/logo2.jpg"
)]
#![doc = include_str!("../README.md")]
#![cfg_attr(docsrs, feature(doc_cfg))]
use thiserror::Error;
mod decoder;
mod message;
mod stream;
pub(crate) mod utils;
pub mod prelude {
pub use crate::{
ClosedSourceMeta, Error,
decoder::Decoder,
message::{
EphemerisFrame, GALEphemeris, GLOEphemeris, GPSEphemeris, GPSRaw, GeoStringFrame,
Message, Meta, MonumentGeoMetadata, MonumentGeoRecord, PositionEcef3d, PositionGeo3d,
Record, SBASEphemeris, Solutions, SolutionsFrame, TemporalSolution, Velocity3d,
VelocityNED3d,
},
stream::{ClosedSourceElement, Provider, StreamElement},
};
pub use hifitime::{Epoch, TimeScale};
}
use crate::message::Meta;
use crate::stream::Provider;
#[derive(Debug, Copy, Clone)]
pub struct ClosedSourceMeta {
pub mid: u32,
pub mlen: usize,
pub size: usize,
pub open_meta: Meta,
pub provider: Provider,
offset: usize,
}
#[derive(Debug)]
pub enum Error {
NotEnoughBytes,
IoError,
NoSyncByte,
ReversedStream,
EnhancedCrc,
NonSupportedTimescale,
UnknownMessage,
Utf8Error,
MissingCRC,
CorrupctBadCRC,
IncompleteMessage(usize),
NonSupportedMesssage(usize),
NonSupportedSubRecord,
TooLargeInternalLimitation,
ClosedSourceMessage(ClosedSourceMeta),
}