1pub use crate::config::{matchable::Matchable, parameter_matchable::ParameterMatchable};
2
3pub trait IntoString {
4 fn into_string(self) -> String;
5}
6
7pub trait MapAny<T> {
8 fn map_any<F: FnOnce(T) -> T>(self, op: F) -> Self;
9}
10
11impl<T> MapAny<T> for Result<T, T> {
12 fn map_any<F: FnOnce(T) -> T>(self, op: F) -> Self {
13 match self {
14 Ok(x) => Ok(op(x)),
15 Err(x) => Err(op(x)),
16 }
17 }
18}
19
20pub trait MaybeRef<T> {
21 fn maybe_ref(&self) -> Option<&T>;
22 fn to_ref(&self) -> &T;
23}
24
25pub trait MaybeRefAs {
26 fn maybe_ref_as<T>(&self) -> Option<&T>
27 where
28 Self: MaybeRef<T>;
29 fn to_ref_as<T>(&self) -> &T
30 where
31 Self: MaybeRef<T>;
32}