[][src]Struct arrow::buffer::Buffer

pub struct Buffer { /* fields omitted */ }

Buffer is a contiguous memory region of fixed size and is aligned at a 64-byte boundary. Buffer is immutable.

Implementations

impl Buffer[src]

pub unsafe fn from_raw_parts(
    ptr: *const u8,
    len: usize,
    capacity: usize
) -> Self
[src]

Creates a buffer from an existing memory region (must already be byte-aligned), this Buffer will free this piece of memory when dropped.

Arguments

  • ptr - Pointer to raw parts
  • len - Length of raw parts in bytes
  • capacity - Total allocated memory for the pointer ptr, in bytes

Safety

This function is unsafe as there is no guarantee that the given pointer is valid for len bytes. If the ptr and capacity come from a Buffer, then this is guaranteed.

pub unsafe fn from_unowned(ptr: *const u8, len: usize, capacity: usize) -> Self[src]

Creates a buffer from an existing memory region (must already be byte-aligned), this Buffer does not free this piece of memory when dropped.

Arguments

  • ptr - Pointer to raw parts
  • len - Length of raw parts in bytes
  • capacity - Total allocated memory for the pointer ptr, in bytes

Safety

This function is unsafe as there is no guarantee that the given pointer is valid for len bytes. If the ptr and capacity come from a Buffer, then this is guaranteed.

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

Returns the number of bytes in the buffer

pub fn capacity(&self) -> usize[src]

Returns the capacity of this buffer

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

Returns whether the buffer is empty.

pub fn data(&self) -> &[u8][src]

Returns the byte slice stored in this buffer

pub fn slice(&self, offset: usize) -> Self[src]

Returns a slice of this buffer, starting from offset.

pub fn raw_data(&self) -> *const u8[src]

Returns a raw pointer for this buffer.

Note that this should be used cautiously, and the returned pointer should not be stored anywhere, to avoid dangling pointers.

pub unsafe fn typed_data<T: ArrowNativeType + Num>(&self) -> &[T][src]

View buffer as typed slice.

Safety

ArrowNativeType is public so that it can be used as a trait bound for other public components, such as the ToByteSlice trait. However, this means that it can be implemented by user defined types, which it is not intended for.

Also typed_data::<bool> is unsafe as 0x00 and 0x01 are the only valid values for bool in Rust. However, bool arrays in Arrow are bit-packed which breaks this condition.

pub fn empty() -> Self[src]

Returns an empty buffer.

Trait Implementations

impl<'a, 'b> BitAnd<&'b Buffer> for &'a Buffer[src]

type Output = Result<Buffer>

The resulting type after applying the & operator.

impl<'a, 'b> BitOr<&'b Buffer> for &'a Buffer[src]

type Output = Result<Buffer>

The resulting type after applying the | operator.

impl Clone for Buffer[src]

impl Debug for Buffer[src]

impl From<Buffer> for Bitmap[src]

impl<T: AsRef<[u8]>> From<T> for Buffer[src]

Creating a Buffer instance by copying the memory from a AsRef<[u8]> into a newly allocated memory region.

impl<'_> Not for &'_ Buffer[src]

type Output = Buffer

The resulting type after applying the ! operator.

impl PartialEq<Buffer> for Buffer[src]

impl Send for Buffer[src]

impl StructuralPartialEq for Buffer[src]

impl Sync for Buffer[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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