Skip to main content

BoxColumnBuffer

Type Alias BoxColumnBuffer 

Source
pub type BoxColumnBuffer = Box<dyn AnyColumnBuffer>;
Expand description

Heap allocated column buffer with dynamic type. Intended to be used as a type parameter for ColumnarBuffer to enable columns of different types only known at runtime to be bound to the same block cursor.

Aliased Type§

pub struct BoxColumnBuffer(/* private fields */);

Trait Implementations§

Source§

impl<'a> BoundInputSlice<'a> for BoxColumnBuffer

Source§

type SliceMut = BoxColumBufferRefMut<'a>

Intended to allow for modifying buffer contents, while leaving the bound parameter buffers valid.
Source§

unsafe fn as_view_mut( &'a mut self, parameter_index: u16, stmt: StatementRef<'a>, ) -> BoxColumBufferRefMut<'a>

Obtain a mutable view on a parameter buffer in order to change the parameter value(s) submitted when executing the statement. Read more
Source§

impl CData for BoxColumnBuffer

Source§

fn cdata_type(&self) -> CDataType

The identifier of the C data type of the value buffer. When it is retrieving data from the data source with fetch, the driver converts the data to this type. When it sends data to the source, the driver converts the data from this type.
Source§

fn indicator_ptr(&self) -> *const isize

Indicates the length of variable sized types. May be zero for fixed sized types. Used to determine the size or existence of input parameters.
Source§

fn value_ptr(&self) -> *const c_void

Pointer to a value corresponding to the one described by cdata_type.
Source§

fn buffer_length(&self) -> isize

Maximum length of the type in bytes (not characters). It is required to index values in bound buffers, if more than one parameter is bound. Can be set to zero for types not bound as parameter arrays, i.e. CStr.
Source§

impl CDataMut for BoxColumnBuffer

Source§

fn mut_indicator_ptr(&mut self) -> *mut isize

Indicates the length of variable sized types. May be zero for fixed sized types.
Source§

fn mut_value_ptr(&mut self) -> *mut c_void

Pointer to a value corresponding to the one described by cdata_type.
Source§

impl ColumnBuffer for BoxColumnBuffer

Source§

fn capacity(&self) -> usize

Current capacity of the column
Source§

fn has_truncated_values(&self, num_rows: usize) -> Option<Indicator>

Some if any value is truncated in the range [0, num_rows). Read more
Source§

impl Resize for BoxColumnBuffer

Source§

fn resize(&mut self, new_capacity: usize)

Resize the buffer to the given capacity. Read more
Source§

impl Slice for BoxColumnBuffer

Source§

type Slice<'a> = AnyColumnBufferSlice<'a>

Immutable view on the column data. Used in safe abstractions. User must not be able to access uninitialized or invalid memory of the buffer through this interface.
Source§

fn slice(&self, valid_rows: usize) -> AnyColumnBufferSlice<'_>

Num rows may not exceed the actual amount of valid num_rows filled by the ODBC API. The column buffer does not know how many elements were in the last row group, and therefore can not guarantee the accessed element to be valid and in a defined state. It also can not panic on accessing an undefined element.