mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-25 00:00:22 +02:00
committed by
Carl Lerche
parent
d0d27bd540
commit
f693e038d9
+3
-2
@@ -407,12 +407,13 @@ impl<'a> Sink for &'a mut Vec<u8> {
|
|||||||
self.clear();
|
self.clear();
|
||||||
|
|
||||||
let rem = buf.remaining();
|
let rem = buf.remaining();
|
||||||
let cap = self.capacity();
|
|
||||||
|
|
||||||
// Ensure that the vec is big enough
|
// Ensure that the vec is big enough
|
||||||
if rem > self.capacity() {
|
if rem > self.capacity() {
|
||||||
self.reserve(rem - cap);
|
// current length is 0, so reserve completely
|
||||||
|
self.reserve(rem);
|
||||||
}
|
}
|
||||||
|
debug_assert!(rem <= self.capacity());
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use bytes::{Buf};
|
use bytes::{Buf};
|
||||||
use byteorder;
|
use byteorder;
|
||||||
use std::io::{Cursor};
|
use std::io::{Cursor};
|
||||||
|
use std::vec::{Vec};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
pub fn test_fresh_cursor_vec() {
|
pub fn test_fresh_cursor_vec() {
|
||||||
@@ -44,3 +45,15 @@ fn test_read_u16_buffer_underflow() {
|
|||||||
let mut buf = Cursor::new(b"\x21");
|
let mut buf = Cursor::new(b"\x21");
|
||||||
buf.read_u16::<byteorder::BigEndian>();
|
buf.read_u16::<byteorder::BigEndian>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_vec_sink_capacity() {
|
||||||
|
use bytes::Sink;
|
||||||
|
|
||||||
|
let mut sink: Vec<u8> = Vec::new();
|
||||||
|
sink.reserve(16);
|
||||||
|
assert!(sink.capacity() >= 16, "Capacity {} must be at least 16", sink.capacity());
|
||||||
|
let mut source = Cursor::new(b"0123456789abcdef0123456789abcdef");
|
||||||
|
sink.copy_from(&mut source);
|
||||||
|
assert!(sink.len() <= sink.capacity(), "Length {} must be less than or equal to capacity {}", sink.len(), sink.capacity());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user