1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21

use crate::history::{FileHistory, HistoryInfo};
use crate::common::get_hash_times;
use crate::error::FsResult;
use crate::imp::history::file_hist::file_histories::FileHistories;


pub fn list_histories(info : &HistoryInfo) -> FsResult<FileHistories>{
    let history_dir = info.history_dir();
    let hash_times = get_hash_times(history_dir)?;
    let opt = info.options();

    let mut vec : Vec<(u128, FileHistory)> = vec![];
    for (hash, _time) in hash_times{
        if let Ok(history) = FileHistory::create(history_dir, hash, opt.max_phase(), opt.is_cumulative()){
            vec.push((hash, history));
        }
    }

    Ok(FileHistories::new(vec))
}