pub mod distance;
pub mod examples;
pub mod prelude;
pub mod track;
pub mod trackers;
pub mod py;
pub mod utils;
pub use track::store;
pub use track::voting;
use thiserror::Error;
#[derive(Error, Debug, Clone)]
pub enum Errors {
#[error("Attributes are incompatible between tracks and cannot be used in calculations.")]
IncompatibleAttributes,
#[error("Requested observations for class={2} are missing in track={0} or track={1} - distance cannot be calculated.")]
ObservationForClassNotFound(u64, u64, u64),
#[error("Missing track={0}.")]
TrackNotFound(u64),
#[error("Missing requested tracks.")]
TracksNotFound,
#[error("Calculation with self id={0} not permitted")]
SameTrackCalculation(u64),
#[error("Duplicate track id={0}")]
DuplicateTrackId(u64),
#[error("Generic BBox cannot be converted to a requested type")]
GenericBBoxConversionError,
}
pub const EPS: f32 = 0.00001;
pub trait EstimateClose {
fn almost_same(&self, other: &Self, eps: f32) -> bool;
}