fix regression(?)
This commit is contained in:
@@ -16,7 +16,7 @@ pub struct PIterMut<T>(*mut T);
|
||||
|
||||
impl<T: 'static> Iterator for PIter<T> {
|
||||
type Item = &'static T;
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
fn next(&mut self) -> Option<<Self as Iterator>::Item> {
|
||||
unsafe {
|
||||
let r = Some(&*self.0);
|
||||
self.0 = self.0.offset(1isize);
|
||||
@@ -27,7 +27,7 @@ impl<T: 'static> Iterator for PIter<T> {
|
||||
|
||||
impl<T: 'static> Iterator for PIterMut<T> {
|
||||
type Item = &'static mut T;
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
fn next(&mut self) -> Option<<Self as Iterator>::Item> {
|
||||
unsafe {
|
||||
let r = Some(&mut *self.0);
|
||||
self.0 = self.0.offset(1isize);
|
||||
|
||||
@@ -70,9 +70,11 @@ impl<T> Mut<MaybeUninit<T>> {
|
||||
}
|
||||
|
||||
impl<T> Deref for Mut<T> {
|
||||
|
||||
type Target = core::cell::UnsafeCell<T>;
|
||||
|
||||
#[inline(always)]
|
||||
fn deref(&self) -> &Self::Target {
|
||||
fn deref(&self) -> &<Self as Deref>::Target {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ impl<T, const O: usize> Deref for VirtualOffset<T, O> {
|
||||
type Target = T;
|
||||
|
||||
#[inline(always)]
|
||||
fn deref(&self) -> &Self::Target {
|
||||
fn deref(&self) -> &<Self as Deref>::Target {
|
||||
unsafe { transmute(((self as *const _ as usize) + O) as *const T)}
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ impl<T, const O: usize> Deref for VirtualOffset<T, O> {
|
||||
impl<T, const O: usize> DerefMut for VirtualOffset<T, O> {
|
||||
|
||||
#[inline(always)]
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
fn deref_mut(&mut self) -> &mut <Self as Deref>::Target {
|
||||
unsafe { transmute(((self as *mut _ as usize) + O) as *mut T)}
|
||||
}
|
||||
}
|
||||
@@ -48,13 +48,13 @@ impl<T, const O: usize> DerefMut for VirtualOffset<T, O> {
|
||||
|
||||
impl<I, T: Index<I>, const O: usize> Index<I> for VirtualOffset<T, O> {
|
||||
type Output = T::Output;
|
||||
fn index(&self, index: I) -> &Self::Output {
|
||||
fn index(&self, index: I) -> &<Self as Index<I>>::Output {
|
||||
unsafe { &*self.vo_as_ptr() }.index(index)
|
||||
}
|
||||
}
|
||||
|
||||
impl<I, T: IndexMut<I>, const O: usize> IndexMut<I> for VirtualOffset<T, O> {
|
||||
fn index_mut(&mut self, index: I) -> &mut Self::Output {
|
||||
fn index_mut(&mut self, index: I) -> &mut <Self as Index<I>>::Output {
|
||||
unsafe { &mut *self.vo_as_ptr() }.index_mut(index)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[features]
|
||||
default = ["core"]
|
||||
default = ["core", "xpat"]
|
||||
core = ["sub_core"]
|
||||
macros = ["sub_macros"]
|
||||
libm = ["sub_libm"]
|
||||
|
||||
Reference in New Issue
Block a user