psyche_utils/bucket_strainer/rules/
fixed_score_rule.rs

1use crate::bucket_strainer::{Bucket, Rule};
2use crate::Scalar;
3
4/// Bucket rule that always gives specified score.
5#[derive(Clone)]
6pub struct FixedScoreRule {
7    /// Score value.
8    pub score: Scalar,
9}
10
11impl FixedScoreRule {
12    pub fn new(score: Scalar) -> Self {
13        Self { score }
14    }
15}
16
17impl<T> Rule<T> for FixedScoreRule
18where
19    T: Clone,
20{
21    fn score(&self, _: &T, _: &Bucket<T>) -> Scalar {
22        self.score
23    }
24
25    fn box_clone(&self) -> Box<dyn Rule<T>> {
26        Box::new((*self).clone())
27    }
28}