struct Storaget<T> {
    data: Vec<T>,
    path: &'static str,
}

struct Filter<'a, T> {
    data: &'a mut Vec<T>,
    path: &'static str,
}

struct DataObject<'a, T> {
    data: &'a mut T,
    path: &'static str,
}