grass_runtime/property/
score.rs

1pub trait Scored<T> {
2    fn score(&self) -> Option<T>;
3}
4
5impl<S, T: Scored<S>> Scored<S> for Option<T> {
6    fn score(&self) -> Option<S> {
7        self.as_ref().map(|inner| inner.score()).flatten()
8    }
9}
10
11impl<S, A: Scored<S>, B> Scored<S> for (A, B) {
12    fn score(&self) -> Option<S> {
13        self.0.score()
14    }
15}