use std::fmt;
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIDeqMode {
Browse = 1,
Locked = 2,
Remove = 3,
RemoveNoData = 4,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIDeqNavigation {
FirstMsg = 1,
NextTransaction = 2,
NextMsg = 3,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIEventType {
No = 0,
Startup = 1,
Shutdown = 2,
ShutdownAny = 3,
DropDB = 4,
Dereg = 5,
ObjectChange = 6,
QueryChange = 7,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIFetchMode {
Next = 2,
First = 4,
Last = 8,
Prior = 16,
Absolte = 32,
Relative = 64,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIMessageDeliveryMode {
NotSet = 0,
Persistent = 1,
Buffered = 2,
PersistentOrBuffered = 3,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIMessageState {
Ready = 0,
Waiting = 1,
Processed = 2,
Expired = 3,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPINativeTypeNum {
Invalid = 0,
Int64 = 3000,
Uint64 = 3001,
Float = 3002,
Double = 3003,
Bytes = 3004,
Timestamp = 3005,
IntervalDS = 3006,
IntervalYM = 3007,
Lob = 3008,
Object = 3009,
Stmt = 3010,
Boolean = 3011,
Rowid = 3012,
}
impl Default for ODPINativeTypeNum {
fn default() -> Self {
ODPINativeTypeNum::Invalid
}
}
impl From<i32> for ODPINativeTypeNum {
fn from(val: i32) -> Self {
match val {
3000 => ODPINativeTypeNum::Int64,
3001 => ODPINativeTypeNum::Uint64,
3002 => ODPINativeTypeNum::Float,
3003 => ODPINativeTypeNum::Double,
3004 => ODPINativeTypeNum::Bytes,
3005 => ODPINativeTypeNum::Timestamp,
3006 => ODPINativeTypeNum::IntervalDS,
3007 => ODPINativeTypeNum::IntervalYM,
3008 => ODPINativeTypeNum::Lob,
3009 => ODPINativeTypeNum::Object,
3010 => ODPINativeTypeNum::Stmt,
3011 => ODPINativeTypeNum::Boolean,
3012 => ODPINativeTypeNum::Rowid,
_ => ODPINativeTypeNum::Invalid,
}
}
}
impl fmt::Display for ODPINativeTypeNum {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let desc = match *self {
ODPINativeTypeNum::Int64 => "Int64",
ODPINativeTypeNum::Uint64 => "Uint64",
ODPINativeTypeNum::Float => "Float",
ODPINativeTypeNum::Double => "Double",
ODPINativeTypeNum::Bytes => "Bytes",
ODPINativeTypeNum::Timestamp => "Timestamp",
ODPINativeTypeNum::IntervalDS => "IntervalDS",
ODPINativeTypeNum::IntervalYM => "IntervalYM",
ODPINativeTypeNum::Lob => "LOB",
ODPINativeTypeNum::Object => "Object",
ODPINativeTypeNum::Stmt => "Stmt",
ODPINativeTypeNum::Boolean => "Boolean",
ODPINativeTypeNum::Rowid => "Rowid",
ODPINativeTypeNum::Invalid => "Invalid",
};
write!(f, "{}", desc)
}
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIOracleTypeNum {
TypeNone = 2000,
Varchar = 2001,
NVarchar = 2002,
Char = 2003,
NChar = 2004,
RowID = 2005,
Raw = 2006,
NativeFloat = 2007,
NativeDouble = 2008,
NativeInt = 2009,
Number = 2010,
Date = 2011,
Timestamp = 2012,
TimestampTz = 2013,
TimestampLtz = 2014,
IntervalDS = 2015,
IntervalYM = 2016,
Clob = 2017,
NClob = 2018,
Blob = 2019,
BFile = 2020,
Stmt = 2021,
Boolean = 2022,
Object = 2023,
LongVarchar = 2024,
LongRaw = 2025,
NativeUint = 2026,
Max = 2027,
}
impl From<ODPIOracleTypeNum> for String {
fn from(kind: ODPIOracleTypeNum) -> Self {
let desc = match kind {
ODPIOracleTypeNum::Varchar => "Varchar",
ODPIOracleTypeNum::NVarchar => "NVarchar",
ODPIOracleTypeNum::Char => "Char",
ODPIOracleTypeNum::NChar => "NChar",
ODPIOracleTypeNum::RowID => "RowID",
ODPIOracleTypeNum::Raw => "Raw",
ODPIOracleTypeNum::NativeFloat => "Native Float",
ODPIOracleTypeNum::NativeDouble => "Native Double",
ODPIOracleTypeNum::NativeInt => "Native Int",
ODPIOracleTypeNum::Number => "Number",
ODPIOracleTypeNum::Date => "Date",
ODPIOracleTypeNum::Timestamp => "Timestamp",
ODPIOracleTypeNum::TimestampTz => "Timestamp with Timezone",
ODPIOracleTypeNum::TimestampLtz => "Timestamp with Local Timezone",
ODPIOracleTypeNum::IntervalDS => "Days/Seconds Interval",
ODPIOracleTypeNum::IntervalYM => "Years/Months Interval",
ODPIOracleTypeNum::Clob => "CLOB",
ODPIOracleTypeNum::NClob => "NCLOB",
ODPIOracleTypeNum::Blob => "BLOB",
ODPIOracleTypeNum::BFile => "Binary File",
ODPIOracleTypeNum::Stmt => "Statement",
ODPIOracleTypeNum::Boolean => "Boolean",
ODPIOracleTypeNum::Object => "Object",
ODPIOracleTypeNum::LongVarchar => "Long Varchar",
ODPIOracleTypeNum::LongRaw => "Long Raw",
ODPIOracleTypeNum::NativeUint => "Native Unsigned Int",
ODPIOracleTypeNum::Max => "Max",
ODPIOracleTypeNum::TypeNone => "Invalid Type",
};
desc.to_string()
}
}
impl fmt::Display for ODPIOracleTypeNum {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let desc: String = (*self).into();
write!(f, "{}", desc)
}
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIPoolGetMode {
Wait,
NoWait,
ForceGet,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIPurity {
DefaultPurity = 0,
New = 1,
SelfPurity = 2,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIShutdownMode {
DefaultShutdownMode = 0,
Transactional = 1,
TransactionalLocal = 2,
Immediate = 3,
Abort = 4,
Final = 5,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIStartupMode {
DefaultStartupMode = 0,
Force = 1,
Restrict = 2,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIStatementType {
Unknown = 0,
Select = 1,
Update = 2,
Delete = 3,
Insert = 4,
Create = 5,
DropDdl = 6,
Alter = 7,
Begin = 8,
Declare = 9,
Call = 10,
ExplainPlan = 15,
Merge = 16,
Rollback = 17,
Commit = 21,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPISubscrNamespace {
DbChange = 0,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPISubscrProtocol {
Callback = 0,
Mail = 1,
PLSQL = 2,
HTTP = 3,
}
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum ODPIVisibility {
Immediate = 1,
OnCommit = 2,
}