sp3 1.0.8

IGS SP3 file parser
Documentation
//! SP3 file merging operations.

use thiserror::Error;

#[derive(Debug, Clone, Error)]
pub enum MergeError {
    // #[error("data providers (agencies) should match, when merging two sp3")]
    // DataProvider,
    #[error("timescales should match when merging two sp3")]
    TimeScale,
    #[error("coords system (ref. frame) should match when merging two sp3")]
    CoordSystem,
}

pub trait Merge {
    /// Merge two SP3 files together: this introduces
    /// need Epoch and new data into self.
    /// We tolerate different sample rate, in this case
    /// self.epoch_interval becomes the lowest sample rate (pessimistic).
    /// File version is adjusted to newest revision.
    fn merge(&self, rhs: &Self) -> Result<Self, MergeError>
    where
        Self: Sized;
    fn merge_mut(&mut self, rhs: &Self) -> Result<(), MergeError>
    where
        Self: Sized;
}