pub struct FftExecutionCache<'a> { /* private fields */ }Expand description
Execution-cache state supplied to an FftBackend.
Direct repeated calls use a caller-owned FftPlanCache, while traced
execution uses the owning runtime’s [ExtensionCacheStore]. Both ownership
paths expose the same bounded typed store to a backend, so CPU, Metal, CUDA,
and future implementations can retain private plans or workspaces in their
own cache namespace. Constructors keep the owner representation closed.
§Examples
use tenferro_fft::{FftExecutionCache, FftPlanCache};
let mut plans = FftPlanCache::default();
let cache = FftExecutionCache::caller_owned(&mut plans);
assert!(format!("{cache:?}").contains("CallerOwned"));Implementations§
Source§impl<'a> FftExecutionCache<'a>
impl<'a> FftExecutionCache<'a>
Sourcepub fn caller_owned(cache: &'a mut FftPlanCache) -> Self
pub fn caller_owned(cache: &'a mut FftPlanCache) -> Self
Build a context backed by a caller-owned typed FFT execution cache.
Sourcepub fn runtime_owned(cache: &'a mut ExtensionCacheStore) -> Self
pub fn runtime_owned(cache: &'a mut ExtensionCacheStore) -> Self
Build a context backed by an extension runtime cache store.
Sourcepub fn store_mut(&mut self) -> &mut ExtensionCacheStore
pub fn store_mut(&mut self) -> &mut ExtensionCacheStore
Borrow the bounded typed store owned by the caller or extension runtime.
Backend implementations should use a stable family/cache namespace and include every plan-identity field in the key discriminator. The store owns LRU bounds, typed retrieval, clear behavior, entry counts, and the retained-byte estimates supplied at insertion.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for FftExecutionCache<'a>
impl<'a> !RefUnwindSafe for FftExecutionCache<'a>
impl<'a> Send for FftExecutionCache<'a>
impl<'a> Sync for FftExecutionCache<'a>
impl<'a> Unpin for FftExecutionCache<'a>
impl<'a> UnsafeUnpin for FftExecutionCache<'a>
impl<'a> !UnwindSafe for FftExecutionCache<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more