Skip to main content

BufferChunk

Struct BufferChunk 

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

BufferChunk is a lockable pinned byte-slice All modifications to the Chunk goes through the get_slice method

Implementations§

Source§

impl BufferChunk

Source

pub fn new(size: usize) -> BufferChunk

Allocate a new Default BufferChunk

Source

pub fn from_chunk( raw_chunk: *mut dyn Chunk, allocator: Arc<dyn ChunkAllocator>, ) -> BufferChunk

Creates a BufferChunk using the given Chunk

Source

pub fn len(&self) -> usize

Get the length of the BufferChunk

Source

pub fn is_empty(&self) -> bool

Source

pub fn swap_buffer(&mut self, other: &mut BufferChunk)

Swaps self with other in-place

Source

pub fn get_lease(&mut self, from: usize, to: usize) -> ChunkLease

Returns a ChunkLease pointing to the subslice between from and toof the BufferChunk the returned lease is a consumable Buf.

Source

pub fn get_lock(&self) -> Arc<()>

Clones the lock, the BufferChunk will be locked until all given locks are deallocated

Source

pub fn free(&mut self) -> bool

Returns true if this BufferChunk is available again

Source

pub fn lock(&mut self)

Locks the BufferChunk, it will not be writable nor will any leases be created before it has been unlocked.

Trait Implementations§

Source§

impl Debug for BufferChunk

Source§

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

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

impl Drop for BufferChunk

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Send for BufferChunk

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> DispatchEvent for T
where T: Any + Send + Debug,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any + Send>

Convert this event into an erased Any payload for downcasting.
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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> Erased for T

Source§

impl<M> MessageBounds for M
where M: Debug + Send + 'static,