Fri, 13 Oct 2023 13:32:46 -0500
feature(binary_heap_retain) is stable now
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 } }