use super::*;
use crate::col::{Col, ColMut, ColRef};
#[derive(Debug)]
pub struct Diag<E: Entity> {
    pub(crate) inner: Col<E>,
}
impl<E: Entity> Diag<E> {
    #[inline(always)]
    pub fn column_vector(&self) -> ColRef<'_, E> {
        self.as_ref().column_vector()
    }
    #[inline(always)]
    pub fn column_vector_mut(&mut self) -> ColMut<'_, E> {
        self.as_mut().column_vector_mut()
    }
    #[inline(always)]
    pub fn into_column_vector(self) -> Col<E> {
        self.inner
    }
    #[inline(always)]
    pub fn as_ref(&self) -> DiagRef<'_, E> {
        DiagRef {
            inner: self.inner.as_ref(),
        }
    }
    #[inline(always)]
    pub fn as_mut(&mut self) -> DiagMut<'_, E> {
        DiagMut {
            inner: self.inner.as_mut(),
        }
    }
}