Enum odbc_api::buffers::BufferKind[][src]

pub enum BufferKind {
Show variants Binary { length: usize, }, Text { max_str_len: usize, }, WText { max_str_len: usize, }, F64, F32, Date, Time, Timestamp, I8, I16, I32, I64, U8, Bit,
}

This class is used together with crate::buffers::BufferDescription to specify the layout of buffers bound to ODBC cursors and statements.

Variants

Binary

Variable sized binary buffer, holding up to length bytes per value.

Show fields

Fields of Binary

length: usize

Maximum number of bytes per value.

Text

Text buffer holding strings with binary length of up to max_str_len.

Show fields

Fields of Text

max_str_len: usize

Maximum string length. Terminating zero is excluded, i.e. memory for it will be implicitly allocated if required.

WText

UTF-16 encoded text buffer holding strings with length of up to max_str_len. Length is in terms of 2-Byte characters.

Show fields

Fields of WText

max_str_len: usize

Maximum string length. Terminating zero is excluded, i.e. memory for it will be implicitly allocated if required.

F64

64 bit floating point

F32

32 bit floating point

Date

Describes a buffer holding crate::sys::Date values.

Time

Describes a buffer holding crate::sys::Time values.

Timestamp

Describes a buffer holding crate::sys::Timestamp values.

I8

Signed 8 Bit integer

I16

Signed 16 Bit integer

I32

Signed 32 Bit integer

I64

Signed 64 Bit integer

U8

Unsigned 8 Bit integer

Bit

Can either be zero or one

Implementations

impl BufferKind[src]

pub fn from_data_type(data_type: DataType) -> Option<Self>[src]

Describe a buffer which fits best the SQL Data Type.

use odbc_api::{DataType, buffers::BufferKind};

assert_eq!(BufferKind::from_data_type(DataType::Unknown), None);
assert_eq!(
    BufferKind::from_data_type(DataType::Numeric { precision: 2, scale: 0 }),
    Some(BufferKind::I8)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Numeric { precision: 9, scale: 0 }),
    Some(BufferKind::I32)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Numeric { precision: 18, scale: 0 }),
    Some(BufferKind::I64)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Numeric { precision: 20, scale: 5 }),
    Some(BufferKind::Text { max_str_len: 20 + 2 })
);
assert_eq!(
    BufferKind::from_data_type(DataType::Varchar { length: 42 }),
    Some(BufferKind::Text { max_str_len: 42 })
);
// We do not care about the encoding in the datasource. WVarchar is mapped to `Text`, too
// (instead of `WText`).
assert_eq!(
    BufferKind::from_data_type(DataType::WVarchar { length: 42 }),
    Some(BufferKind::Text { max_str_len: 42 })
);
assert_eq!(
    BufferKind::from_data_type(DataType::BigInt),
    Some(BufferKind::I64)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Integer),
    Some(BufferKind::I32)
);
assert_eq!(
    BufferKind::from_data_type(DataType::SmallInt),
    Some(BufferKind::I16)
);
assert_eq!(
    BufferKind::from_data_type(DataType::TinyInt),
    Some(BufferKind::I8)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Float),
    Some(BufferKind::F32)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Double),
    Some(BufferKind::F64)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Date),
    Some(BufferKind::Date)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Time { precision: 0 }),
    Some(BufferKind::Time)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Bit),
    Some(BufferKind::Bit)
);
assert_eq!(
    BufferKind::from_data_type(DataType::Time { precision: 3 }),
    Some(BufferKind::Text { max_str_len: 12 })
);
assert_eq!(
    BufferKind::from_data_type(DataType::Timestamp { precision: 3 }),
    Some(BufferKind::Timestamp)
);

Trait Implementations

impl Clone for BufferKind[src]

fn clone(&self) -> BufferKind[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for BufferKind[src]

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

Formats the value using the given formatter. Read more

impl PartialEq<BufferKind> for BufferKind[src]

fn eq(&self, other: &BufferKind) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &BufferKind) -> bool[src]

This method tests for !=.

impl Copy for BufferKind[src]

impl Eq for BufferKind[src]

impl StructuralEq for BufferKind[src]

impl StructuralPartialEq for BufferKind[src]

Auto Trait Implementations

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.