pub(crate) unsafe fn sp_copy_within_unchecked(
		&mut self,
		src: impl RangeExt<usize>,
		dest: usize,
	) {
		let source = src.normalize(None, self.len());
		let rev = source.contains(&dest);
		let dest = dest .. dest + source.len();

		let this = self.as_accessor();
		let from = this
			.get_unchecked(source)
			.chunks(WORD_BITS)
			.map(|bits| bits as *const BitSlice<T::Access, Msb0>);
		let to = this.get_unchecked(dest).chunks(WORD_BITS).map(|bits| {
			bits as *const BitSlice<T::Access, Msb0>
				as *mut BitSlice<T::Access, Msb0>
		});
		for (from, to) in from.zip(to).bidi(rev) {
			let value = (&*from).load_be::<usize>();
			(&mut *to).store_be::<usize>(value);
		}
	}
/// Accelerates possibly-overlapping copies within a single bit-slice with
/// batch loads.
Accelerates possibly-overlapping copies within a single bit-slice with
batch loads.
Accelerates possibly - overlapping copies within a single bit - slice with batch loads .
pub(crate) unsafe fn sp_copy_within_unchecked(
		&mut self,
		src: impl RangeExt<usize>,
		dest: usize,
	) {
		let source = src.normalize(None, self.len());
		let rev = source.contains(&dest);
		let dest = dest .. dest + source.len();
		let this = self.as_accessor();
		let from = this
			.get_unchecked(source)
			.chunks(WORD_BITS)
			.map(|bits| bits as *const BitSlice<T::Access, Msb0>);
		let to = this.get_unchecked(dest).chunks(WORD_BITS).map(|bits| {
			bits as *const BitSlice<T::Access, Msb0>
				as *mut BitSlice<T::Access, Msb0>
		});
		for (from, to) in from.zip(to).bidi(rev) {
			let value = (&*from).load_be::<usize>();
			(&mut *to).store_be::<usize>(value);
		}
	}
pub ( crate ) unsafe fn sp_copy_within_unchecked ( & mut self , src : impl RangeExt < usize > , dest : usize , ) { let source = src . normalize ( None , self . len ( ) ) ; let rev = source . contains ( & dest ) ; let dest = dest .. dest + source . len ( ) ; let this = self . as_accessor ( ) ; let from = this . get_unchecked ( source ) . chunks ( WORD_BITS ) . map ( | bits | bits as * const BitSlice < T :: Access , Msb0 > ) ; let to = this . get_unchecked ( dest ) . chunks ( WORD_BITS ) . map ( | bits | { bits as * const BitSlice < T :: Access , Msb0 > as * mut BitSlice < T :: Access , Msb0 > } ) ; for ( from , to ) in from . zip ( to ) . bidi ( rev ) { let value = ( & * from ) . load_be :: < usize > ( ) ; ( & mut * to ) . store_be :: < usize > ( value ) ; } }
Accelerates possibly-overlapping copies within a single bit-slice with
batch loads.
Accelerates possibly - overlapping copies within a single bit - slice with batch loads .
&mut self
src
impl RangeExt<usize>
dest
usize
&mut self
src
impl RangeExt<usize>
dest
usize