Struct RawCircle

Source
pub struct RawCircle { /* private fields */ }
Expand description

A thread-safe version of CharCircle.

The API of this buffer is almost identical to CharCircle except that it uses external mutability, and it does not provide a means to consume its characters from an external iterator.

Implementations§

Source§

impl RawCircle

Source

pub fn new(s: String) -> RawCircle

Construct a new RawCircle using a string as the initial buffer.

Source

pub fn empty() -> RawCircle

Construct a new, empty RawCircle.

Source

pub fn len(&self) -> usize

The number of UTF-8 bytes in the buffer.

Source

pub fn n_chars(&self) -> usize

The number of characters in the buffer.

Source

pub fn capacity(&self) -> usize

The number of bytes the buffer can hold before reallocating.

This refers to the length of the backing vector. That vector may have additional capacity allocated to it that is not reported by this method.

Source

pub fn read_char(&mut self) -> Option<char>

Read the next character in the buffer.

Source

pub fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Read bytes from this circle into a buffer.

This method will only ever read complete UTF-8 characters. It returns the number of bytes read; it never returns an error.

This is the implementation of std::io::Read for RawCircle.

Source

pub fn read_str<'a>(&mut self, buf: &'a mut [u8]) -> &'a str

Read bytes from this circle into a buffer.

This method is equivalent to RawCircle::read except the return value is the buffer cast to a &str.

Source

pub fn write_char(&mut self, ch: char)

Write a character into the buffer.

Source

pub fn write(&mut self, buf: &[u8]) -> Result<usize>

Read bytes from a string into this buffer;

This method will only ever write complete UTF-8 characters. It returns the number of bytes written. This method returns an error if the input is not valid UTF-8.

This is the implementation of std::io::Write for RawCircle.

Source

pub fn write_str(&mut self, buf: &str) -> usize

Read bytes from a string into this buffer;

This method is equivalent to RawCircle::write except that it cannot return an error because the input is valid UTF-8.

Source

pub fn into_vec(self) -> Vec<u8>

Unpack this circular buffer into a byte vector.

Source

pub fn into_string(self) -> String

Unpack this circular buffer into a string.

Trait Implementations§

Source§

impl Clone for RawCircle

Source§

fn clone(&self) -> RawCircle

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RawCircle

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RawCircle

Source§

fn default() -> RawCircle

Returns the “default value” for a type. Read more
Source§

impl From<RawCircle> for String

Source§

fn from(c: RawCircle) -> String

Converts to this type from the input type.
Source§

impl From<RawCircle> for Vec<u8>

Source§

fn from(c: RawCircle) -> Vec<u8>

Converts to this type from the input type.
Source§

impl From<String> for RawCircle

Source§

fn from(s: String) -> RawCircle

Converts to this type from the input type.
Source§

impl Read for RawCircle

Source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
1.36.0 · Source§

fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>

Like read, except that it reads into a slice of buffers. Read more
Source§

fn is_read_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored implementation. Read more
1.0.0 · Source§

fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>

Reads all bytes until EOF in this source, placing them into buf. Read more
1.0.0 · Source§

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>

Reads all bytes until EOF in this source, appending them to buf. Read more
1.6.0 · Source§

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>

Reads the exact number of bytes required to fill buf. Read more
Source§

fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Pull some bytes from this source into the specified buffer. Read more
Source§

fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>

🔬This is a nightly-only experimental API. (read_buf)
Reads the exact number of bytes required to fill cursor. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adaptor for this instance of Read. Read more
1.0.0 · Source§

fn bytes(self) -> Bytes<Self>
where Self: Sized,

Transforms this Read instance to an Iterator over its bytes. Read more
1.0.0 · Source§

fn chain<R>(self, next: R) -> Chain<Self, R>
where R: Read, Self: Sized,

Creates an adapter which will chain this stream with another. Read more
1.0.0 · Source§

fn take(self, limit: u64) -> Take<Self>
where Self: Sized,

Creates an adapter which will read at most limit bytes from it. Read more
Source§

impl Write for RawCircle

Source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<()>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.