pub(crate) fn unpack<R>(&mut self) -> Option<R>
    where
        R: 'static,
    {
        self.inner.downcast_mut::<Option<R>>()?.take()
    }
// We convert future result trait object into type using downcast.
We convert future result trait object into type using downcast.
We convert future result trait object into type using downcast .
pub(crate) fn unpack<R>(&mut self) -> Option<R>
    where
        R: 'static,
    {
        self.inner.downcast_mut::<Option<R>>()?.take()
    }
pub ( crate ) fn unpack < R > ( & mut self ) -> Option < R > where R : ' static , { self . inner . downcast_mut :: < Option < R > > ( ) ? . take ( ) }
We convert future result trait object into type using downcast.
We convert future result trait object into type using downcast .
&mut self