Skip to content

Commit 01dd95b

Browse files
authored
Remove BufMutViewWhole (denoland#871)
Closes denoland#842
1 parent cbea5f9 commit 01dd95b

File tree

3 files changed

+0
-128
lines changed

3 files changed

+0
-128
lines changed

core/io/buffers.rs

Lines changed: 0 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,6 @@ impl From<bytes::Bytes> for BufView {
164164
}
165165
}
166166

167-
/// BufMutViewWhole is equivalent to `BufMutView`, but cannot be split, preventing
168-
/// someone from accidentally holding a `BufView` down the road that is being actively
169-
/// mutated from JavaScript.
170-
pub struct BufMutViewWhole {
171-
inner: BufMutViewInner,
172-
cursor: usize,
173-
}
174-
175167
/// BufMutView is a wrapper around an underlying contiguous chunk of writable
176168
/// bytes. It can be created from a `JsBuffer` or a `Vec<u8>` and implements
177169
/// `DerefMut<[u8]>` and `AsMut<[u8]>`.
@@ -419,124 +411,6 @@ impl From<BytesMut> for BufMutView {
419411
}
420412
}
421413

422-
impl BufMutViewWhole {
423-
fn from_inner(inner: BufMutViewInner) -> Self {
424-
Self { inner, cursor: 0 }
425-
}
426-
427-
pub fn new(len: usize) -> Self {
428-
let bytes = BytesMut::zeroed(len);
429-
Self::from_inner(BufMutViewInner::Bytes(bytes))
430-
}
431-
432-
/// Get the length of the buffer view. This is the length of the underlying
433-
/// buffer minus the cursor position.
434-
pub fn len(&self) -> usize {
435-
match &self.inner {
436-
BufMutViewInner::JsBuffer(js_buf) => js_buf.len() - self.cursor,
437-
BufMutViewInner::Bytes(bytes) => bytes.len() - self.cursor,
438-
}
439-
}
440-
441-
/// Is the buffer view empty?
442-
pub fn is_empty(&self) -> bool {
443-
self.len() == 0
444-
}
445-
446-
/// Advance the internal cursor of the buffer view by `n` bytes.
447-
pub fn advance_cursor(&mut self, n: usize) {
448-
assert!(self.len() >= n);
449-
self.cursor += n;
450-
}
451-
452-
/// Reset the internal cursor of the buffer view to the beginning of the
453-
/// buffer. Returns the old cursor position.
454-
pub fn reset_cursor(&mut self) -> usize {
455-
let old = self.cursor;
456-
self.cursor = 0;
457-
old
458-
}
459-
460-
/// Turn this `BufMutView` into a `BufView`.
461-
pub fn into_view(self) -> BufView {
462-
let inner = match self.inner {
463-
BufMutViewInner::JsBuffer(js_buf) => BufViewInner::JsBuffer(js_buf),
464-
BufMutViewInner::Bytes(bytes) => BufViewInner::Bytes(bytes.into()),
465-
};
466-
BufView {
467-
inner,
468-
cursor: self.cursor,
469-
}
470-
}
471-
472-
/// Attempts to unwrap the underlying buffer into a [`BytesMut`], consuming the `BufMutView`. If
473-
/// this buffer does not have a [`BytesMut`], returns `Self`.
474-
pub fn maybe_unwrap_bytes(self) -> Result<BytesMut, Self> {
475-
match self.inner {
476-
BufMutViewInner::JsBuffer(_) => Err(self),
477-
BufMutViewInner::Bytes(bytes) => Ok(bytes),
478-
}
479-
}
480-
481-
/// Adjust the length of the remaining buffer and ensure that the cursor continues to
482-
/// stay in-bounds.
483-
pub fn truncate(&mut self, size: usize) {
484-
match &mut self.inner {
485-
BufMutViewInner::Bytes(bytes) => bytes.truncate(size + self.cursor),
486-
BufMutViewInner::JsBuffer(buffer) => buffer.truncate(size + self.cursor),
487-
}
488-
self.cursor = std::cmp::min(self.cursor, self.len());
489-
}
490-
}
491-
492-
impl Buf for BufMutViewWhole {
493-
fn remaining(&self) -> usize {
494-
self.len()
495-
}
496-
497-
fn chunk(&self) -> &[u8] {
498-
self.deref()
499-
}
500-
501-
fn advance(&mut self, cnt: usize) {
502-
self.advance_cursor(cnt)
503-
}
504-
}
505-
506-
impl Deref for BufMutViewWhole {
507-
type Target = [u8];
508-
509-
fn deref(&self) -> &[u8] {
510-
let buf = match &self.inner {
511-
BufMutViewInner::JsBuffer(js_buf) => js_buf.deref(),
512-
BufMutViewInner::Bytes(vec) => vec.deref(),
513-
};
514-
&buf[self.cursor..]
515-
}
516-
}
517-
518-
impl DerefMut for BufMutViewWhole {
519-
fn deref_mut(&mut self) -> &mut [u8] {
520-
let buf = match &mut self.inner {
521-
BufMutViewInner::JsBuffer(js_buf) => js_buf.deref_mut(),
522-
BufMutViewInner::Bytes(vec) => vec.deref_mut(),
523-
};
524-
&mut buf[self.cursor..]
525-
}
526-
}
527-
528-
impl From<JsBuffer> for BufMutViewWhole {
529-
fn from(buf: JsBuffer) -> Self {
530-
Self::from_inner(BufMutViewInner::JsBuffer(buf.into_parts()))
531-
}
532-
}
533-
534-
impl From<BytesMut> for BufMutViewWhole {
535-
fn from(buf: BytesMut) -> Self {
536-
Self::from_inner(BufMutViewInner::Bytes(buf))
537-
}
538-
}
539-
540414
#[cfg(test)]
541415
mod tests {
542416
use super::*;

core/io/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ mod resource_table;
1818

1919
pub use buffer_strategy::AdaptiveBufferStrategy;
2020
pub use buffers::BufMutView;
21-
pub use buffers::BufMutViewWhole;
2221
pub use buffers::BufView;
2322
pub use resource::Resource;
2423
pub use resource_handle::ResourceHandle;

core/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ pub use crate::inspector::JsRuntimeInspector;
9292
pub use crate::inspector::LocalInspectorSession;
9393
pub use crate::io::AsyncResult;
9494
pub use crate::io::BufMutView;
95-
pub use crate::io::BufMutViewWhole;
9695
pub use crate::io::BufView;
9796
pub use crate::io::Resource;
9897
pub use crate::io::ResourceHandle;

0 commit comments

Comments
 (0)