pub fn schedule_close_after<W>(
        &mut self,
        start: T,
        duration: W,
        max_end: Option<T>,
        data: D,
    ) -> bool
    where
        T: Add<W, Output = T> + Sub<W, Output = T>,
        W: Copy + Debug,
    {
        let data = Rc::new(data);
        self.schedule_close_after_(start, duration, max_end, Rc::clone(&data))
            .with_side_effects(|start| self.update_map(start, data))
            .is_some()
    }
/// Tries to schedule `data` as close as possible after `start` with the given `duration`. It
/// must be scheduled before `max_end` when given.
///
/// Returns whether the scheduling succeeded.


Returns whether the scheduling succeeded.
Returns whether the scheduling succeeded .
pub fn schedule_close_after<W>(
        &mut self,
        start: T,
        duration: W,
        max_end: Option<T>,
        data: D,
    ) -> bool
    where
        T: Add<W, Output = T> + Sub<W, Output = T>,
        W: Copy + Debug,
    {
        let data = Rc::new(data);
        self.schedule_close_after_(start, duration, max_end, Rc::clone(&data))
            .with_side_effects(|start| self.update_map(start, data))
            .is_some()
    }
pub fn schedule_close_after < W > ( & mut self , start : T , duration : W , max_end : Option < T > , data : D , ) -> bool where T : Add < W , Output = T > + Sub < W , Output = T > , W : Copy + Debug , { let data = Rc :: new ( data ) ; self . schedule_close_after_ ( start , duration , max_end , Rc :: clone ( & data ) ) . with_side_effects ( | start | self . update_map ( start , data ) ) . is_some ( ) }
Tries to schedule `data` as close as possible after `start` with the given `duration`.
Tries to schedule ` data ` as close as possible after ` start ` with the given ` duration ` .
&mut self
start
T
duration
W
max_end
Option<T>
data
D
&mut self
start
T
duration
W
max_end
Option<T>
data
D