use crate::prelude::{BiasRuntime, Duration};
#[cfg(doc)]
use crate::prelude::Method;
#[derive(Default, Debug, Copy, Clone)]
pub struct SatelliteClockCorrection {
pub duration: Duration,
pub(crate) needs_relativistic_correction: bool,
}
impl SatelliteClockCorrection {
pub fn with_relativistic_correction(duration: Duration) -> Self {
Self {
duration,
needs_relativistic_correction: false,
}
}
pub fn without_relativistic_correction(duration: Duration) -> Self {
Self {
duration,
needs_relativistic_correction: true,
}
}
}
pub trait SpacebornBias {
fn clock_bias(&self, rtm: &BiasRuntime) -> SatelliteClockCorrection;
fn group_delay(&self, rtm: &BiasRuntime) -> Duration;
fn mw_bias(&self, rtm: &BiasRuntime) -> f64;
}