pub static DEFAULT_SCORING: Scoring = Scoring {
bonus_consecutive: 8,
bonus_word_start: 72,
bonus_match_case: 8,
penalty_distance: 4,
};
#[derive(Clone, Debug)]
#[cfg_attr(feature = "serde_support", derive(Serialize, Deserialize))]
pub struct Scoring {
pub bonus_consecutive: isize,
pub bonus_word_start: isize,
pub bonus_match_case: isize,
pub penalty_distance: isize,
}
impl Scoring {
pub fn new(
bonus_consecutive: isize,
bonus_word_start: isize,
bonus_match_case: isize,
penalty_distance: isize,
) -> Self {
Scoring {
bonus_consecutive,
bonus_word_start,
bonus_match_case,
penalty_distance,
}
}
pub fn emphasize_word_starts() -> Self {
Self::default()
}
pub fn emphasize_distance() -> Self {
Scoring::new(12, 24, 8, 8)
}
}
impl Default for Scoring {
fn default() -> Self {
DEFAULT_SCORING.clone()
}
}