diff options
Diffstat (limited to 'vendor/memchr/src/ext.rs')
-rw-r--r-- | vendor/memchr/src/ext.rs | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/vendor/memchr/src/ext.rs b/vendor/memchr/src/ext.rs deleted file mode 100644 index 1bb21dd..0000000 --- a/vendor/memchr/src/ext.rs +++ /dev/null @@ -1,52 +0,0 @@ -/// A trait for adding some helper routines to pointers. -pub(crate) trait Pointer { - /// Returns the distance, in units of `T`, between `self` and `origin`. - /// - /// # Safety - /// - /// Same as `ptr::offset_from` in addition to `self >= origin`. - unsafe fn distance(self, origin: Self) -> usize; - - /// Casts this pointer to `usize`. - /// - /// Callers should not convert the `usize` back to a pointer if at all - /// possible. (And if you believe it's necessary, open an issue to discuss - /// why. Otherwise, it has the potential to violate pointer provenance.) - /// The purpose of this function is just to be able to do arithmetic, i.e., - /// computing offsets or alignments. - fn as_usize(self) -> usize; -} - -impl<T> Pointer for *const T { - unsafe fn distance(self, origin: *const T) -> usize { - // TODO: Replace with `ptr::sub_ptr` once stabilized. - usize::try_from(self.offset_from(origin)).unwrap_unchecked() - } - - fn as_usize(self) -> usize { - self as usize - } -} - -impl<T> Pointer for *mut T { - unsafe fn distance(self, origin: *mut T) -> usize { - (self as *const T).distance(origin as *const T) - } - - fn as_usize(self) -> usize { - (self as *const T).as_usize() - } -} - -/// A trait for adding some helper routines to raw bytes. -pub(crate) trait Byte { - /// Converts this byte to a `char` if it's ASCII. Otherwise panics. - fn to_char(self) -> char; -} - -impl Byte for u8 { - fn to_char(self) -> char { - assert!(self.is_ascii()); - char::from(self) - } -} |