cecile-supercool-tracker 0.0.1

Machine learning framework for building object trackers and similarity search engines
Documentation
use crate::track::ObservationAttributes;

impl ObservationAttributes for f32 {
    type MetricObject = f32;

    fn calculate_metric_object(
        left: &Option<&Self>,
        right: &Option<&Self>,
    ) -> Option<Self::MetricObject> {
        if let (Some(left), Some(right)) = (left, right) {
            Some((*left - *right).abs())
        } else {
            None
        }
    }
}

impl ObservationAttributes for () {
    type MetricObject = ();

    fn calculate_metric_object(
        _left: &Option<&Self>,
        _right: &Option<&Self>,
    ) -> Option<Self::MetricObject> {
        None
    }
}