pub( crate ) mod private
{
#[ allow( unused_imports ) ]
use crate::prelude::*;
pub trait AsNalgebraNonCanonicalInterface< T >
where
T : Copy,
Self : Copy
{
fn clone_as_nalgebra( &self ) -> T;
}
#[ cfg( nalgebra_ops ) ]
impl< T, Any > AsForeignNonCanonicalInterface< T > for Any
where
T : Copy,
Any : AsNalgebraNonCanonicalInterface< T > + Copy,
{
fn clone_as_foreign( &self ) -> T
{
self.clone_as_nalgebra()
}
}
pub trait AsNalgebraCanonicalInterface< T >
where
T : Copy,
Self : AsNalgebraNonCanonicalInterface< T > + Copy,
{
fn as_nalgebra( &self ) -> &T;
fn as_nalgebra_mut( &mut self ) -> &mut T;
}
#[ cfg( nalgebra_ops ) ]
impl< T, Any > AsForeignCanonicalInterface< T > for Any
where
T : Copy,
Any : AsNalgebraCanonicalInterface< T > + Copy,
{
fn as_foreign( &self ) -> &T
{
self.as_nalgebra()
}
fn as_foreign_mut( &mut self ) -> &mut T
{
self.as_nalgebra_mut()
}
}
}
crate::mod_interface!
{
prelude use
{
AsNalgebraNonCanonicalInterface,
AsNalgebraCanonicalInterface,
};
}