1#[derive(Debug, Clone)]
8pub enum LibSqlValue {
9 Null,
11 Integer(i64),
13 Real(f64),
15 Text(String),
17 Blob(Vec<u8>),
19}
20
21impl LibSqlValue {
22 pub fn read_text(&self) -> &str {
24 match self {
25 LibSqlValue::Text(s) => s.as_str(),
26 _ => panic!("Expected Text value, got {:?}", self),
27 }
28 }
29
30 pub fn read_integer(&self) -> i32 {
32 match self {
33 LibSqlValue::Integer(i) => *i as i32,
34 _ => panic!("Expected Integer value, got {:?}", self),
35 }
36 }
37
38 pub fn read_long(&self) -> i64 {
40 match self {
41 LibSqlValue::Integer(i) => *i,
42 _ => panic!("Expected Integer value, got {:?}", self),
43 }
44 }
45
46 pub fn read_double(&self) -> f64 {
48 match self {
49 LibSqlValue::Real(f) => *f,
50 LibSqlValue::Integer(i) => *i as f64,
51 _ => panic!("Expected Real value, got {:?}", self),
52 }
53 }
54
55 pub fn read_blob(&self) -> &[u8] {
57 match self {
58 LibSqlValue::Blob(b) => b.as_slice(),
59 _ => panic!("Expected Blob value, got {:?}", self),
60 }
61 }
62
63 pub fn is_null(&self) -> bool {
65 matches!(self, LibSqlValue::Null)
66 }
67}