use super::types::Array;
use crate::domain::error::Result;
use crate::domain::layout::Layout;
use crate::infrastructure::storage::Storage;
use std::marker::PhantomData;
impl<T, S, const N: usize> Array<T, S, N>
where
S: Storage<T>,
{
pub fn new(layout: Layout<N>, storage: S) -> Result<Self> {
layout.validate_storage_len(storage.len())?;
Ok(Self {
layout,
storage,
_marker: PhantomData,
})
}
}