pub trait R2RPlan: Sized {
type Real: AlignedAllocable;
// Required methods
fn new(
shape: &[usize],
in_: &mut [Self::Real],
out: &mut [Self::Real],
kind: R2RKind,
flag: Flag
) -> Result<Self>;
fn r2r(
&mut self,
in_: &mut [Self::Real],
out: &mut [Self::Real]
) -> Result<()>;
// Provided method
fn aligned(shape: &[usize], kind: R2RKind, flag: Flag) -> Result<Self> { ... }
}