fre 0.4.1

A command line frecency tracking tool
Documentation
use super::*;

#[derive(Serialize, Deserialize, Debug)]
pub struct ItemStatsSerializer {
    pub item: String,
    pub frecency: f64,
    pub last_accessed: f64,
    pub num_accesses: i32,
}

impl From<ItemStats> for ItemStatsSerializer {
    fn from(stats: ItemStats) -> Self {
        ItemStatsSerializer {
            item: stats.item,
            frecency: stats.frecency,
            last_accessed: stats.last_accessed,
            num_accesses: stats.num_accesses,
        }
    }
}

impl ItemStatsSerializer {
    pub fn into_item_stats(self, ref_time: f64, half_life: f64) -> ItemStats {
        ItemStats {
            half_life,
            reference_time: ref_time,
            item: self.item,
            frecency: self.frecency,
            last_accessed: self.last_accessed,
            num_accesses: self.num_accesses,
        }
    }
}