pub(crate) fn coerce<T2, O2>(&self) -> Option<&BitSlice<T2, O2>>
	where
		T2: BitStore,
		O2: BitOrder,
	{
		if dvl::match_types::<T, O, T2, O2>() {
			Some(unsafe { &*(self as *const Self as *const BitSlice<T2, O2>) })
		}
		else {
			None
		}
	}
/// Attempts to change a bit-slice reference to caller-supplied type
/// parameters.
///
/// If `<T, O>` is identical to `<T2, O2>`, this returns `Some` with the
/// bit-slice reference unchanged in value but changed in type. If the types
/// differ, it returns `None`. This is useful for creating statically-known
/// bit-slice types within generic contexts.
Attempts to change a bit-slice reference to caller-supplied type
parameters.


Attempts to change a bit - slice reference to caller - supplied type parameters .
pub(crate) fn coerce<T2, O2>(&self) -> Option<&BitSlice<T2, O2>>
	where
		T2: BitStore,
		O2: BitOrder,
	{
		if dvl::match_types::<T, O, T2, O2>() {
			Some(unsafe { &*(self as *const Self as *const BitSlice<T2, O2>) })
		}
		else {
			None
		}
	}
pub ( crate ) fn coerce < T2 , O2 > ( & self ) -> Option < & BitSlice < T2 , O2 > > where T2 : BitStore , O2 : BitOrder , { if dvl :: match_types :: < T , O , T2 , O2 > ( ) { Some ( unsafe { & * ( self as * const Self as * const BitSlice < T2 , O2 > ) } ) } else { None } }
Attempts to change a bit-slice reference to caller-supplied type
parameters.
Attempts to change a bit - slice reference to caller - supplied type parameters .
&self
&self