Trait buf_min::Buffer[][src]

pub trait Buffer {
    type Freeze;
    fn with_capacity(capacity: usize) -> Self
    where
        Self: Sized
;
fn is_empty(&self) -> bool;
fn len(&self) -> usize;
unsafe fn extend_from_slice(&mut self, src: &[u8]);
fn reserve(&mut self, additional: usize);
fn freeze(self) -> Self::Freeze;
unsafe fn advance(&mut self, cnt: usize);
unsafe fn buf_ptr(&mut self) -> *mut u8; fn extend(&mut self, src: &str) { ... } }
Expand description

Minimal Buffer trait with utf-8 safety

Associated Types

type Freeze[src]

Into immutable type

Required methods

fn with_capacity(capacity: usize) -> Self where
    Self: Sized
[src]

Returns new Buffer with capacity

fn is_empty(&self) -> bool[src]

Returns true if the Buffer has a length of 0.

fn len(&self) -> usize[src]

unsafe fn extend_from_slice(&mut self, src: &[u8])[src]

Appends given bytes to this Buffer.

Safety

Broke utf-8 safety

Panics

Can panic if current length plus src length overflows usize

fn reserve(&mut self, additional: usize)[src]

Reserves capacity for at least additional more bytes to be inserted into the given Buffer.

Panics

Can panic if current capacity plus additional overflows usize

fn freeze(self) -> Self::Freeze[src]

Converts self into a Freeze type

unsafe fn advance(&mut self, cnt: usize)[src]

Advance the internal cursor of the Buffer

Safety

Can’t advance more than capacity of the Buffer

Panics

Can panic if length plus cnt is bigger than capacity

unsafe fn buf_ptr(&mut self) -> *mut u8[src]

Return unsafe ptr to current Buffer position

Safety

If buffer is full, can return invalid pointer

Provided methods

fn extend(&mut self, src: &str)[src]

Appends given str to this Buffer.

Panics

Can panic if current length plus src length overflows usize

Implementations on Foreign Types

impl Buffer for Vec<u8>[src]

type Freeze = Vec<u8>

fn with_capacity(capacity: usize) -> Self where
    Self: Sized
[src]

fn is_empty(&self) -> bool[src]

fn len(&self) -> usize[src]

unsafe fn extend_from_slice(&mut self, src: &[u8])[src]

fn reserve(&mut self, additional: usize)[src]

fn freeze(self) -> Self::Freeze[src]

unsafe fn advance(&mut self, cnt: usize)[src]

unsafe fn buf_ptr(&mut self) -> *mut u8[src]

impl Buffer for String[src]

type Freeze = String

fn with_capacity(capacity: usize) -> Self where
    Self: Sized
[src]

fn is_empty(&self) -> bool[src]

fn len(&self) -> usize[src]

unsafe fn extend_from_slice(&mut self, src: &[u8])[src]

fn reserve(&mut self, additional: usize)[src]

fn freeze(self) -> Self::Freeze[src]

unsafe fn advance(&mut self, cnt: usize)[src]

unsafe fn buf_ptr(&mut self) -> *mut u8[src]

Implementors

impl Buffer for BytesMut[src]

type Freeze = Bytes

fn with_capacity(capacity: usize) -> Self where
    Self: Sized
[src]

fn is_empty(&self) -> bool[src]

fn len(&self) -> usize[src]

unsafe fn extend_from_slice(&mut self, src: &[u8])[src]

fn reserve(&mut self, additional: usize)[src]

fn freeze(self) -> Self::Freeze[src]

unsafe fn advance(&mut self, cnt: usize)[src]

unsafe fn buf_ptr(&mut self) -> *mut u8[src]