pub struct BufferAny { /* private fields */ }Expand description
Represents a sub-part of a buffer.
Doesn’t contain any information about the content, contrary to Buffer.
Implementations§
source§impl BufferAny
impl BufferAny
sourcepub fn as_slice_any(&self) -> BufferAnySlice<'_>
pub fn as_slice_any(&self) -> BufferAnySlice<'_>
Builds a slice-any containing the whole subbuffer.
sourcepub unsafe fn as_typed_slice_mut<T: ?Sized + Content>(
&mut self
) -> BufferMutSlice<'_, T>
pub unsafe fn as_typed_slice_mut<T: ?Sized + Content>( &mut self ) -> BufferMutSlice<'_, T>
Builds a mutable typed slice containing the whole subbuffer, without checking the type.
sourcepub unsafe fn as_typed_slice<T: ?Sized + Content>(&self) -> BufferSlice<'_, T>
pub unsafe fn as_typed_slice<T: ?Sized + Content>(&self) -> BufferSlice<'_, T>
Builds a typed slice containing the whole subbuffer, without checking the type.
sourcepub fn get_elements_size(&self) -> usize
pub fn get_elements_size(&self) -> usize
Returns the size in bytes of each element in the buffer.
sourcepub fn get_elements_count(&self) -> usize
pub fn get_elements_count(&self) -> usize
Returns the number of elements in the buffer.
sourcepub fn get_context(&self) -> &Rc<Context>
pub fn get_context(&self) -> &Rc<Context>
Returns the context corresponding to this buffer.
sourcepub fn invalidate(&self)
pub fn invalidate(&self)
Invalidates the content of the buffer. The data becomes undefined.
This operation is a no-op if the backend doesn’t support it and for persistent-mapped buffers.
sourcepub unsafe fn read<T>(&self) -> Result<T::Owned, ReadError>where
T: Content,
pub unsafe fn read<T>(&self) -> Result<T::Owned, ReadError>where
T: Content,
UNSTABLE. This function can be removed at any moment without any further notice.
Considers that the buffer is filled with elements of type T and reads them.
Panic
Panics if the size of the buffer is not a multiple of the size of the data.
For example, trying to read some (u8, u8, u8, u8)s from a buffer of 7 bytes will panic.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for BufferAny
impl !Send for BufferAny
impl !Sync for BufferAny
impl Unpin for BufferAny
impl !UnwindSafe for BufferAny
Blanket Implementations§
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§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>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.