1
2
3
4
5
6
7
8
9
10
11
pub trait OptionExt<T> {
    fn if_present<E: Fn(&T)>(&self, action: E);
}

impl<T> OptionExt<T> for Option<T> {
    fn if_present<E: Fn(&T)>(&self, action: E) {
        if let Some(value) = self {
            action(value);
        }
    }
}