pub trait ResidentBackend: Send + Sync {
// Required methods
fn allocate_complex(&self, len: usize) -> Result<Box<dyn ComplexBuffer>>;
fn allocate_real(&self, len: usize) -> Result<Box<dyn RealBuffer>>;
fn upload_complex(
&self,
destination: &mut dyn ComplexBuffer,
source: &[Complex64],
) -> Result<()>;
fn download_complex(
&self,
source: &dyn ComplexBuffer,
destination: &mut [Complex64],
) -> Result<()>;
fn upload_real(
&self,
destination: &mut dyn RealBuffer,
source: &[f64],
) -> Result<()>;
fn download_real(
&self,
source: &dyn RealBuffer,
destination: &mut [f64],
) -> Result<()>;
fn fft2_resident(
&self,
values: &mut dyn ComplexBuffer,
shape: (usize, usize),
direction: FftDirection,
) -> Result<()>;
}Expand description
Optional typed-buffer operations for backends that can keep reconstruction state resident in their preferred memory domain.