pub struct BorrowedBuf<'data> { /* private fields */ }
core_io_borrowed_buf
)Expand description
A borrowed byte buffer which is incrementally filled and initialized.
This type is a sort of โdouble cursorโ. It tracks three regions in the buffer: a region at the beginning of the buffer that has been logically filled with data, a region that has been initialized at some point but not yet logically filled, and a region at the end that is fully uninitialized. The filled region is guaranteed to be a subset of the initialized region.
In summary, the contents of the buffer can be visualized as:
[ capacity ]
[ filled | unfilled ]
[ initialized | uninitialized ]
A BorrowedBuf
is created around some existing data (or capacity for data) via a unique reference
(&mut
). The BorrowedBuf
can be configured (e.g., using clear
or set_init
), but cannot be
directly written. To write into the buffer, use unfilled
to create a BorrowedCursor
. The cursor
has write-only access to the unfilled portion of the buffer (you can think of it as a
write-only iterator).
The lifetime 'data
is a bound on the lifetime of the underlying data.
Implementationsยง
Sourceยงimpl<'data> BorrowedBuf<'data>
impl<'data> BorrowedBuf<'data>
Sourcepub fn capacity(&self) -> usize
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn capacity(&self) -> usize
core_io_borrowed_buf
)Returns the total capacity of the buffer.
Sourcepub fn len(&self) -> usize
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn len(&self) -> usize
core_io_borrowed_buf
)Returns the length of the filled part of the buffer.
Sourcepub fn init_len(&self) -> usize
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn init_len(&self) -> usize
core_io_borrowed_buf
)Returns the length of the initialized part of the buffer.
Sourcepub fn filled(&self) -> &[u8] โ
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn filled(&self) -> &[u8] โ
core_io_borrowed_buf
)Returns a shared reference to the filled portion of the buffer.
Sourcepub fn filled_mut(&mut self) -> &mut [u8] โ
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn filled_mut(&mut self) -> &mut [u8] โ
core_io_borrowed_buf
)Returns a mutable reference to the filled portion of the buffer.
Sourcepub fn into_filled(self) -> &'data [u8] โ
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn into_filled(self) -> &'data [u8] โ
core_io_borrowed_buf
)Returns a shared reference to the filled portion of the buffer with its original lifetime.
Sourcepub fn into_filled_mut(self) -> &'data mut [u8] โ
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn into_filled_mut(self) -> &'data mut [u8] โ
core_io_borrowed_buf
)Returns a mutable reference to the filled portion of the buffer with its original lifetime.
Sourcepub fn unfilled<'this>(&'this mut self) -> BorrowedCursor<'this> โ
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn unfilled<'this>(&'this mut self) -> BorrowedCursor<'this> โ
core_io_borrowed_buf
)Returns a cursor over the unfilled part of the buffer.
Sourcepub fn clear(&mut self) -> &mut BorrowedBuf<'data>
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub fn clear(&mut self) -> &mut BorrowedBuf<'data>
core_io_borrowed_buf
)Clears the buffer, resetting the filled region to empty.
The number of initialized bytes is not changed, and the contents of the buffer are not modified.
Sourcepub unsafe fn set_init(&mut self, n: usize) -> &mut BorrowedBuf<'data>
๐ฌThis is a nightly-only experimental API. (core_io_borrowed_buf
)
pub unsafe fn set_init(&mut self, n: usize) -> &mut BorrowedBuf<'data>
core_io_borrowed_buf
)Asserts that the first n
bytes of the buffer are initialized.
BorrowedBuf
assumes that bytes are never de-initialized, so this method does nothing when called with fewer
bytes than are already known to be initialized.
ยงSafety
The caller must ensure that the first n
unfilled bytes of the buffer have already been initialized.
Trait Implementationsยง
Sourceยงimpl Debug for BorrowedBuf<'_>
impl Debug for BorrowedBuf<'_>
Sourceยงimpl<'data> From<&'data mut [MaybeUninit<u8>]> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from an uninitialized buffer.
impl<'data> From<&'data mut [MaybeUninit<u8>]> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from an uninitialized buffer.
Use set_init
if part of the buffer is known to be already initialized.
Sourceยงfn from(buf: &'data mut [MaybeUninit<u8>]) -> BorrowedBuf<'data>
fn from(buf: &'data mut [MaybeUninit<u8>]) -> BorrowedBuf<'data>
Sourceยงimpl<'data> From<&'data mut [u8]> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from a fully initialized slice.
impl<'data> From<&'data mut [u8]> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from a fully initialized slice.
Sourceยงfn from(slice: &'data mut [u8]) -> BorrowedBuf<'data>
fn from(slice: &'data mut [u8]) -> BorrowedBuf<'data>
Sourceยงimpl<'data> From<BorrowedCursor<'data>> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from a cursor.
impl<'data> From<BorrowedCursor<'data>> for BorrowedBuf<'data>
Creates a new BorrowedBuf
from a cursor.
Use BorrowedCursor::with_unfilled_buf
instead for a safer alternative.
Sourceยงfn from(buf: BorrowedCursor<'data>) -> BorrowedBuf<'data>
fn from(buf: BorrowedCursor<'data>) -> BorrowedBuf<'data>
Auto Trait Implementationsยง
impl<'data> Freeze for BorrowedBuf<'data>
impl<'data> RefUnwindSafe for BorrowedBuf<'data>
impl<'data> Send for BorrowedBuf<'data>
impl<'data> Sync for BorrowedBuf<'data>
impl<'data> Unpin for BorrowedBuf<'data>
impl<'data> !UnwindSafe for BorrowedBuf<'data>
Blanket Implementationsยง
Sourceยงimpl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Sourceยงfn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT
modifier for aggregate functions Read moreSourceยงfn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL
modifier for aggregate functions Read moreSourceยงfn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Sourceยงfn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Sourceยงimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Sourceยงfn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Sourceยงfn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Sourceยงfn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
โs vtable from &Trait
โs.Sourceยงfn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
โs vtable from &mut Trait
โs.Sourceยงimpl<T> DowncastSend for T
impl<T> DowncastSend for T
Sourceยงimpl<T> DowncastSync for T
impl<T> DowncastSync for T
Sourceยงimpl<T> IntoEither for T
impl<T> IntoEither for T
Sourceยงfn into_either(self, into_left: bool) -> Either<Self, Self> โ
fn into_either(self, into_left: bool) -> Either<Self, Self> โ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSourceยงfn into_either_with<F>(self, into_left: F) -> Either<Self, Self> โ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> โ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSourceยงimpl<T> IntoSql for T
impl<T> IntoSql for T
Sourceยงfn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self
to an expression for Dieselโs query builder. Read moreSourceยงfn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self
to an expression for Dieselโs query builder. Read moreSourceยงimpl<T> Pointable for T
impl<T> Pointable for T
Sourceยงimpl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Sourceยงfn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSourceยงfn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Sourceยงfn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Sourceยงfn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.