use crate::datatype::{Current, Gradient, Point};
use crate::error::Result;
mod cartesian_current;
mod constant_current;
#[allow(unused_imports)]
pub(super) use cartesian_current::CartesianCurrent;
#[allow(unused_imports)]
pub(super) use constant_current::ConstantCurrent;
#[allow(unused_imports)]
pub(super) use constant_current::DEFAULT_CURRENT;
pub(crate) trait CurrentData: Sync {
#[allow(dead_code)]
fn current(&self, point: &Point<f64>) -> Result<Current<f64>>;
fn current_and_gradient(
&self,
point: &Point<f64>,
) -> Result<(Current<f64>, (Gradient<f64>, Gradient<f64>))>;
}