Tracking Issue for checked bitshifts (original) (raw)

Feature gate: #![feature(exact_bitshifts)]

This is a tracking issue for checked bitshifts, i.e. bitshifts that can be losslessly reversed.
ACP: rust-lang/libs-team#570

Public API

impl iX/uX { // Shift succeeds if shift < Self::BITS and right shifting the result returns the original value. fn exact_shl(self, shift: u32) -> Option; unsafe fn unchecked_exact_shl(self, shift: u32) -> Self;

// Shift succeeds if `shift < Self::BITS` and left shifting the result returns the original value.
fn exact_shr(self, shift: u32) -> Option<Self>;
unsafe fn unchecked_exact_shr(self, shift: u32) -> Self;

}

Steps / History

(Remember to update the S-tracking-* label when checking boxes.)

Unresolved Questions

  1. https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html