Fri, 20 Dec 2024 16:14:17 -0500
AXPY as LinSpace attempts, difficulties with Pairs and nalgebra
nalgebra should allow various storages, so InstanceMut as &self, but that won't work.
use std::marker::PhantomData; /// Standard identifier for a [`Support`][super::support::Support] stored in a /// [`BTImpl`][super::bt::BTImpl] as [`BTImpl::Data`][super::bt::BTImpl::Data]. #[derive(Debug)] pub struct SupportId<S> { pub id : usize, _phantom : PhantomData<S> } // derive fails so need to do Copy and Clone manually impl<S> Clone for SupportId<S> { fn clone(&self) -> Self { SupportId { id : self.id, _phantom : PhantomData } } } impl<S> Copy for SupportId<S> {} impl<S> From<u32> for SupportId<S> { #[inline] fn from(id : u32) -> SupportId<S> { SupportId { id : id as usize, _phantom : PhantomData } } } impl<S> From<usize> for SupportId<S> { #[inline] fn from(id : usize) -> SupportId<S> { SupportId { id : id, _phantom : PhantomData } } } impl<S> Into<usize> for SupportId<S> { #[inline] fn into(self) -> usize { self.id } }