Enum odbc_api::buffers::BufferKind
source · [−]pub enum BufferKind {
}
Expand description
This class is used together with crate::buffers::BufferDescription
to specify the layout of
buffers bound to ODBC cursors and statements.
Variants
Binary
Fields
length: usize
Maximum number of bytes per value.
Variable sized binary buffer, holding up to length
bytes per value.
Text
Fields
max_str_len: usize
Maximum string length. Terminating zero is excluded, i.e. memory for it will be implicitly allocated if required.
Text buffer holding strings with binary length of up to max_str_len
.
WText
Fields
max_str_len: usize
Maximum string length. Terminating zero is excluded, i.e. memory for it will be implicitly allocated if required.
UTF-16 encoded text buffer holding strings with length of up to max_str_len
. Length is in
terms of 2-Byte characters.
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
sourceimpl BufferKind
impl BufferKind
sourcepub fn from_data_type(data_type: DataType) -> Option<Self>
pub fn from_data_type(data_type: DataType) -> Option<Self>
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 { precision : 24 }),
Some(BufferKind::F32)
);
assert_eq!(
BufferKind::from_data_type(DataType::Float { precision : 53 }),
Some(BufferKind::F64)
);
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
sourceimpl Clone for BufferKind
impl Clone for BufferKind
sourcefn clone(&self) -> BufferKind
fn clone(&self) -> BufferKind
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for BufferKind
impl Debug for BufferKind
sourceimpl PartialEq<BufferKind> for BufferKind
impl PartialEq<BufferKind> for BufferKind
sourcefn eq(&self, other: &BufferKind) -> bool
fn eq(&self, other: &BufferKind) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &BufferKind) -> bool
fn ne(&self, other: &BufferKind) -> bool
This method tests for !=
.
impl Copy for BufferKind
impl Eq for BufferKind
impl StructuralEq for BufferKind
impl StructuralPartialEq for BufferKind
Auto Trait Implementations
impl RefUnwindSafe for BufferKind
impl Send for BufferKind
impl Sync for BufferKind
impl Unpin for BufferKind
impl UnwindSafe for BufferKind
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more