[][src]Trait psyche_utils::bucket_strainer::Rule

pub trait Rule<T> where
    T: Clone
{ fn score(&self, item: &T, bucket: &Bucket<T>) -> Scalar;
fn box_clone(&self) -> Box<dyn Rule<T>>; }

Trait used to tell how much successfuly bucket has to get incoming item.

Example

use psyche_utils::bucket_strainer::{Bucket, Rule};
use psyche_utils::Scalar;

#[derive(Clone)]
struct SuccessRule;

impl<T> Rule<T> for SuccessRule
where
    T: Clone,
{
    fn score(&self, _: &T, _: &Bucket<T>) -> Scalar {
        1.0
    }

    fn box_clone(&self) -> Box<dyn Rule<T>> {
        Box::new((*self).clone())
    }
}

Required methods

fn score(&self, item: &T, bucket: &Bucket<T>) -> Scalar

Score incoming item.

Arguments

  • item - Incoming item.
  • bucket - Bucket that tests incoming item.

Return

Score for given item that tell how lucky it is to fall into given bucket.

fn box_clone(&self) -> Box<dyn Rule<T>>

Create boxed clone for this rule.

Loading content...

Implementors

impl<T> Rule<T> for BucketLimitRule where
    T: Clone
[src]

impl<T> Rule<T> for ClosureRule<T> where
    T: Clone + 'static, 
[src]

impl<T> Rule<T> for FixedScoreRule where
    T: Clone
[src]

impl<T> Rule<T> for MulRule<T> where
    T: Clone + 'static, 
[src]

impl<T> Rule<T> for SumRule<T> where
    T: Clone + 'static, 
[src]

Loading content...