MapSelf

Trait MapSelf 

Source
pub trait MapSelf {
    // Provided methods
    fn map_self<O, T>(self, op: O) -> T
       where O: FnOnce(Self) -> T,
             Self: Sized { ... }
    fn map_self_or_keep<O>(self, op: O) -> Self
       where O: FnOnce(&Self) -> Option<Self>,
             Self: Sized { ... }
}
Expand description

Functions to transform a type itself instead of something it contains with the usual closure approach.

Provided Methods§

Source

fn map_self<O, T>(self, op: O) -> T
where O: FnOnce(Self) -> T, Self: Sized,

Example:

let (hour, meridiem) = if use_12_hour_clock {
    self.hour_meridiem() // Yields 12-hour clock time.
        .map_self(|(hour, meridiem)| (hour, Some(meridiem)))
} else {
    (self.hour, None)
};
Source

fn map_self_or_keep<O>(self, op: O) -> Self
where O: FnOnce(&Self) -> Option<Self>, Self: Sized,

Example:

// Initialize time to check for double-click.
let mut last_click_time = Instant::now()
    .map_self_or_keep(|now| now.checked_sub(Duration::from_secs(60)));

Implementors§

Source§

impl<T> MapSelf for T