mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-10 00:00:09 +02:00
Create ByteBuf with MutByteBuf::with_capacity
This commit is contained in:
+6
-6
@@ -22,16 +22,11 @@ pub struct ByteBuf {
|
||||
impl ByteBuf {
|
||||
/// Create a new `ByteBuf` by copying the contents of the given slice.
|
||||
pub fn from_slice(bytes: &[u8]) -> ByteBuf {
|
||||
let mut buf = ByteBuf::mut_with_capacity(bytes.len());
|
||||
let mut buf = MutByteBuf::with_capacity(bytes.len());
|
||||
buf.write_slice(bytes);
|
||||
buf.flip()
|
||||
}
|
||||
|
||||
pub fn mut_with_capacity(capacity: usize) -> MutByteBuf {
|
||||
assert!(capacity <= MAX_CAPACITY);
|
||||
MutByteBuf { buf: ByteBuf::new(capacity as u32) }
|
||||
}
|
||||
|
||||
pub unsafe fn from_mem_ref(mem: alloc::MemRef, cap: u32, pos: u32, lim: u32) -> ByteBuf {
|
||||
debug_assert!(pos <= lim && lim <= cap, "invalid arguments; cap={}; pos={}; lim={}", cap, pos, lim);
|
||||
|
||||
@@ -180,6 +175,11 @@ pub struct MutByteBuf {
|
||||
}
|
||||
|
||||
impl MutByteBuf {
|
||||
pub fn with_capacity(capacity: usize) -> MutByteBuf {
|
||||
assert!(capacity <= MAX_CAPACITY);
|
||||
MutByteBuf { buf: ByteBuf::new(capacity as u32) }
|
||||
}
|
||||
|
||||
pub fn capacity(&self) -> usize {
|
||||
self.buf.capacity() as usize
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
use {Bytes, ByteBuf};
|
||||
use {Bytes, MutByteBuf};
|
||||
use buf::{Buf, MutBuf, Source};
|
||||
use bytes::seq::Seq;
|
||||
use bytes::small::{Small};
|
||||
@@ -351,7 +351,7 @@ impl ops::Index<usize> for Node {
|
||||
fn concat_bytes<S1, S2>(left: S1, right: S2, len: usize) -> Bytes
|
||||
where S1: Source, S2: Source,
|
||||
{
|
||||
let mut buf = ByteBuf::mut_with_capacity(len);
|
||||
let mut buf = MutByteBuf::with_capacity(len);
|
||||
|
||||
buf.copy_from(left);
|
||||
buf.copy_from(right);
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
//! Immutable set of bytes sequential in memory.
|
||||
|
||||
use {alloc, ByteBuf, MutBuf};
|
||||
use {alloc, MutByteBuf, MutBuf};
|
||||
use bytes::{Bytes};
|
||||
use std::ops;
|
||||
use std::io::Cursor;
|
||||
@@ -13,7 +13,7 @@ pub struct Seq {
|
||||
|
||||
impl Seq {
|
||||
pub fn from_slice(bytes: &[u8]) -> Bytes {
|
||||
let mut buf = ByteBuf::mut_with_capacity(bytes.len());
|
||||
let mut buf = MutByteBuf::with_capacity(bytes.len());
|
||||
|
||||
buf.copy_from(bytes);
|
||||
buf.flip().into()
|
||||
|
||||
@@ -4,7 +4,7 @@ use std::io;
|
||||
#[test]
|
||||
pub fn test_readijng_buf_from_reader() {
|
||||
let mut reader = chunks(vec![b"foo", b"bar", b"baz"]);
|
||||
let mut buf = ByteBuf::mut_with_capacity(1024);
|
||||
let mut buf = MutByteBuf::with_capacity(1024);
|
||||
|
||||
assert_eq!(3, reader.read_buf(&mut buf).unwrap());
|
||||
assert_eq!(Bytes::from(&b"foo"), Bytes::from(buf.flip()));
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use bytes::{Buf, MutBuf};
|
||||
use bytes::ByteBuf;
|
||||
use bytes::MutByteBuf;
|
||||
|
||||
#[test]
|
||||
pub fn test_initial_buf_empty() {
|
||||
let buf = ByteBuf::mut_with_capacity(100);
|
||||
let buf = MutByteBuf::with_capacity(100);
|
||||
|
||||
assert!(buf.capacity() == 128);
|
||||
assert!(buf.remaining() == 128);
|
||||
@@ -19,7 +19,7 @@ pub fn test_initial_buf_empty() {
|
||||
|
||||
#[test]
|
||||
pub fn test_byte_buf_bytes() {
|
||||
let mut buf = ByteBuf::mut_with_capacity(32);
|
||||
let mut buf = MutByteBuf::with_capacity(32);
|
||||
buf.copy_from(&b"hello "[..]);
|
||||
assert_eq!(&b"hello "[..], buf.bytes());
|
||||
|
||||
@@ -31,7 +31,7 @@ pub fn test_byte_buf_bytes() {
|
||||
|
||||
#[test]
|
||||
pub fn test_byte_buf_read_write() {
|
||||
let mut buf = ByteBuf::mut_with_capacity(32);
|
||||
let mut buf = MutByteBuf::with_capacity(32);
|
||||
|
||||
buf.copy_from(&b"hello world"[..]);
|
||||
assert_eq!(21, buf.remaining());
|
||||
|
||||
Reference in New Issue
Block a user