1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
use chrono::{DateTime, NaiveDate, NaiveDateTime, NaiveTime, Utc};
use time::{Date, OffsetDateTime, PrimitiveDateTime, Time};
use uuid::Uuid;
/// This enum represents a [Null](Value::Null)'s type
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum NullType {
/// String representation
String,
/// Choice representation
Choice,
/// i64 representation
I64,
/// i32 representation
I32,
/// i16 representation
I16,
/// Bool representation
Bool,
/// f64 representation
F64,
/// f32 representation
F32,
/// binary representation
Binary,
/// Naive Time representation
ChronoNaiveTime,
/// Naive Date representation
ChronoNaiveDate,
/// Naive DateTime representation
ChronoNaiveDateTime,
/// Chrono timezone aware date time representation
ChronoDateTime,
/// time's date representation
TimeDate,
/// time's time representation
TimeTime,
/// time's offset datetime representation
TimeOffsetDateTime,
/// time's primitive datetime representation
TimePrimitiveDateTime,
/// Uuid representation
Uuid,
/// Uuid in hyphenated representation
UuidHyphenated,
/// Uuid in simple text representation
UuidSimple,
/// serde_json's Value representation
JsonValue,
/// Mac address representation
#[cfg(feature = "postgres-only")]
MacAddress,
/// IP network presentation
#[cfg(feature = "postgres-only")]
IpNetwork,
/// Bit vec representation
#[cfg(feature = "postgres-only")]
BitVec,
}
/**
This enum represents a value
*/
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum Value<'a> {
/// null representation
Null(NullType),
/// Representation of an identifier, e.g. a column.
/// This variant will not be escaped, so do not
/// pass unchecked data to it.
Ident(&'a str),
/// Representation of a column name with
/// an optional table name
Column {
/// Name of the table
table_name: Option<&'a str>,
/// Name of the column
column_name: &'a str,
},
/// Representation of choices
Choice(&'a str),
/// String representation
String(&'a str),
/// i64 representation
I64(i64),
/// i32 representation
I32(i32),
/// i16 representation
I16(i16),
/// Bool representation
Bool(bool),
/// f64 representation
F64(f64),
/// f32 representation
F32(f32),
/// binary representation
Binary(&'a [u8]),
/// chrono's Naive Time representation
ChronoNaiveTime(NaiveTime),
/// chrono's Naive Date representation
ChronoNaiveDate(NaiveDate),
/// chrono's Naive DateTime representation
ChronoNaiveDateTime(NaiveDateTime),
/// chrono's Timezone aware datetime
ChronoDateTime(DateTime<Utc>),
/// time's date representation
TimeDate(Date),
/// time's time representation
TimeTime(Time),
/// time's offset datetime representation
TimeOffsetDateTime(OffsetDateTime),
/// time's primitive datetime representation
TimePrimitiveDateTime(PrimitiveDateTime),
/// Uuid representation
Uuid(Uuid),
/// Uuid in hyphenated representation
UuidHyphenated(Uuid),
/// Uuid in simple text representation
UuidSimple(Uuid),
/// serde_json's Value representation
JsonValue(&'a serde_json::Value),
/// Mac address representation
#[cfg(feature = "postgres-only")]
MacAddress(mac_address::MacAddress),
/// IP network presentation
#[cfg(feature = "postgres-only")]
IpNetwork(ipnetwork::IpNetwork),
/// Bit vec representation
#[cfg(feature = "postgres-only")]
BitVec(&'a bit_vec::BitVec),
}