]> git.lizzy.rs Git - rust.git/blobdiff - library/alloc/src/collections/vec_deque/iter_mut.rs
refactor: VecDeques IterMut fields to private
[rust.git] / library / alloc / src / collections / vec_deque / iter_mut.rs
index 7700b31cf5b469538f20e88cf652bc4223f2ac2d..31e6e3b06af5fdd1e7e27ee88b013db480d0283d 100644 (file)
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct IterMut<'a, T: 'a> {
     // Internal safety invariant: the entire slice is dereferencable.
-    pub(crate) ring: *mut [T],
-    pub(crate) tail: usize,
-    pub(crate) head: usize,
-    pub(crate) phantom: PhantomData<&'a mut [T]>,
+    ring: *mut [T],
+    tail: usize,
+    head: usize,
+    phantom: PhantomData<&'a mut [T]>,
+}
+
+impl<'a, T> IterMut<'a, T> {
+    pub(super) unsafe fn new(
+        ring: *mut [T],
+        tail: usize,
+        head: usize,
+        phantom: PhantomData<&'a mut [T]>,
+    ) -> Self {
+        IterMut { ring, tail, head, phantom }
+    }
 }
 
 // SAFETY: we do nothing thread-local and there is no interior mutability,