pub type AdapterId = Id<Adapter>;
struct AdapterId(RawId, PhantomData<Adapter>);
0: RawId
1: PhantomData<Adapter>