grass/dev/strategy/alias/
nop.rs

1use super::{AliasStrategy, Result};
2
3/// Implementation for `AliasStrategy`[^strategy], which does nothing.
4///
5/// Each method returns as if no aliases are defined.
6///
7/// [^strategy]: [crate::dev::strategy::alias::AliasStrategy]
8pub struct NopAliasStrategy;
9
10impl AliasStrategy for NopAliasStrategy {
11    fn list_all_aliases<T>(&self) -> Result<T>
12    where
13        T: FromIterator<super::Alias>,
14    {
15        [].into_iter().collect()
16    }
17
18    fn list_aliases_for_category<T, U>(&self, _category: T) -> Result<U>
19    where
20        T: AsRef<str>,
21        U: FromIterator<super::Alias>,
22    {
23        [].into_iter().collect()
24    }
25
26    fn resolve_alias<T: super::ResolvesAlias>(&self, input: T) -> Result<T::Resolved> {
27        input.resolve_alias(|value| Ok(Box::from(value)))
28    }
29}