pub(crate) fn new_cached_instant_context<I: InstantContext + ?Sized>(
    ctx: &I,
) -> CachedInstantCtx<I::Instant> {
    CachedInstantCtx(ctx.now())
}
/// Construct a new `CachedInstantCtx` from the current time.
///
/// This is a hack until we figure out a strategy for splitting context objects.
/// Currently, since most context methods take a `&mut self` argument, lifetimes
/// which don't need to conflict in principle - such as the lifetime of state
/// obtained mutably from [`StateContext`] and the lifetime required to call the
/// [`InstantContext::now`] method on the same object - do conflict, and thus
/// cannot overlap. Until we figure out an approach to deal with that problem,
/// this exists as a workaround.
Construct a new `CachedInstantCtx` from the current time.
This is a hack until we figure out a strategy for splitting context objects.
Construct a new ` CachedInstantCtx ` from the current time . This is a hack until we figure out a strategy for splitting context objects .
pub(crate) fn new_cached_instant_context<I: InstantContext + ?Sized>(
    ctx: &I,
) -> CachedInstantCtx<I::Instant> {
    CachedInstantCtx(ctx.now())
}
pub ( crate ) fn new_cached_instant_context < I : InstantContext + ? Sized > ( ctx : & I , ) -> CachedInstantCtx < I :: Instant > { CachedInstantCtx ( ctx . now ( ) ) }
Construct a new `CachedInstantCtx` from the current time.
Construct a new ` CachedInstantCtx ` from the current time .
ctx
&I
ctx
&I