use core::marker::PhantomData;
type InterScalar = f64;
pub struct InterpolationFrankenstein<S,K,E,I>
where
S: Scalar,
K: Knots,
E: Samples<Input = K::Output>,
I: InterpolationFunction<Construct = E>
{
scalar: PhantomData<S>,
knots: K,
elements: E,
interpolation: I,
}
pub trait InterpolationFunction {
type Construct: Samples;
type Output;
fn interpolate(elements: <Self::Construct as Samples>::Output) -> Self::Output;
}
pub trait Scalar {
}
pub trait Samples {
type Input;
type Output;
}
pub trait Knots {
type Output;
}