use crate::Rewrites;
pub mod tracker;
pub struct Tracker<T> {
items: Vec<tracker::Item<T>>,
path_backing: Vec<u8>,
rewrites: Rewrites,
}
#[derive(Default, Debug, Copy, Clone, Eq, PartialEq)]
pub enum CopySource {
#[default]
FromSetOfModifiedFiles,
FromSetOfModifiedFilesAndAllSources,
}
#[derive(Debug, Copy, Clone, PartialEq)]
pub struct Copies {
pub source: CopySource,
pub percentage: Option<f32>,
}
impl Default for Copies {
fn default() -> Self {
Copies {
source: CopySource::default(),
percentage: Some(0.5),
}
}
}
#[derive(Default, Clone, Copy, Debug, PartialEq)]
pub struct Outcome {
pub options: Rewrites,
pub num_similarity_checks: usize,
pub num_similarity_checks_skipped_for_rename_tracking_due_to_limit: usize,
pub num_similarity_checks_skipped_for_copy_tracking_due_to_limit: usize,
}
impl Default for Rewrites {
fn default() -> Self {
Rewrites {
copies: None,
percentage: Some(0.5),
limit: 1000,
}
}
}