use scirs2_core::ndarray::{Array, Dimension};
use scirs2_core::numeric::{Float, FromPrimitive};
use std::fmt::Debug;
use super::super::BorderMode;
use crate::error::{NdimageError, NdimageResult};
#[allow(dead_code)]
pub fn apply_window_function<T, D, F>(
input: &Array<T, D>,
window_size: &[usize],
_mode: &BorderMode,
value: Option<T>,
_func: F,
) -> NdimageResult<Array<T, D>>
where
T: Float + FromPrimitive + Debug + Clone,
D: Dimension,
F: Fn(&Array<T, D>) -> T,
{
if input.ndim() == 0 {
return Err(NdimageError::InvalidInput(
"Input array cannot be 0-dimensional".into(),
));
}
if window_size.len() != input.ndim() {
return Err(NdimageError::DimensionError(format!(
"Window size must have same length as input dimensions (got {} expected {})",
window_size.len(),
input.ndim()
)));
}
Ok(input.to_owned())
}