use molrs::store::frame_access::FrameAccess;
use ndarray::Array2;
use super::raman_tensor::{RamanTensor, RamanTensorResult};
use crate::compute::error::ComputeError;
use crate::compute::traits::Compute;
#[derive(Debug, Clone, Copy, Default)]
pub struct ResonanceRamanTensor;
pub type ResonanceRamanArgs<'a> = (&'a Array2<f64>, f64, usize);
impl Compute for ResonanceRamanTensor {
type Args<'a> = ResonanceRamanArgs<'a>;
type Output = RamanTensorResult;
fn compute<'a, FA: FrameAccess + Sync + 'a>(
&self,
frames: &[&'a FA],
args: Self::Args<'a>,
) -> Result<Self::Output, ComputeError> {
RamanTensor.compute(frames, args)
}
}