//! Provides an abstract interface for reading and writing transaction histories into binary files.

use chrono::{
    NaiveDate,
    Datelike,
};

use crate::interface::Expense;

/// Abstracts over "things" that can be written into binary.
pub trait Binarize {
    /// Converts a struct into a binary representation.
    pub fn binarize(&self) -> Vec<u8>;
}

impl Binarize for Expense {
    /// Converts an expense into binary.
    pub fn binarize(&self) -> Vec<u8> {
        
    }
}