Wed, 07 Dec 2022 07:00:27 +0200
Added tag v0.1.0 for changeset 51bfde513cfa
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 } }