#[non_exhaustive]pub enum Kind {
Show 22 variants
Int,
BigInt,
SmallInt,
Bool,
Text,
Bytes,
Float,
Date,
Timestamp,
Timestamptz,
Json,
Uuid,
Time,
Year,
TimeTz,
Money,
Range,
Hstore,
Numeric,
Vector,
TsVector,
Null,
}Expand description
Identity tag for each column type the adapter currently
understands. Matches the subset of spg_storage::DataType
the adapter Encode/Decode coverage extends to.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Int
INT / 4-byte signed integer.
BigInt
BIGINT / 8-byte signed integer.
SmallInt
SMALLINT / 2-byte signed integer.
Bool
BOOLEAN.
Text
TEXT / VARCHAR (text body — encoding agnostic).
Bytes
BYTEA (raw bytes).
Float
FLOAT (IEEE-754 double).
Date
DATE.
Timestamp
TIMESTAMP.
Timestamptz
TIMESTAMPTZ.
Json
JSON / JSONB (text-backed JSON).
Uuid
v7.17.0 — UUID (128-bit identifier, RFC 4122 byte order).
Bridges decode into uuid::Uuid or String (canonical
hyphenated lowercase form).
Time
v7.17.0 Phase 3.P0-32 — TIME (without time zone). i64
microseconds since 00:00:00. Bridges decode into String
(canonical HH:MM:SS[.ffffff] form).
Year
v7.17.0 Phase 3.P0-33 — MySQL YEAR. u16 in 1901..=2155
plus zero-year sentinel. Bridges decode into i32 (wire
shape collapses to INT4) or String (4-digit zero-pad).
TimeTz
v7.17.0 Phase 3.P0-34 — PG TIMETZ (TIME WITH TIME
ZONE). i64 us since 00:00:00 local + i32 offset_secs.
Bridges decode into String (canonical
HH:MM:SS[.ffffff]±HH[:MM]).
Money
v7.17.0 Phase 3.P0-35 — PG MONEY — i64 cents.
Bridges decode into String (canonical en_US
$N,NNN.CC) or i64 (raw cents).
Range
v7.17.0 Phase 3.P0-38 — PG range types (int4range /
int8range / numrange / tsrange / tstzrange / daterange).
Bridges decode into String (canonical [a,b)).
Hstore
v7.17.0 Phase 3.P0-39 — PG hstore extension type.
Bridges decode into String (canonical "k"=>"v")
or HashMap<String, Option<String>> (in the language
dialect that ships the hstore feature).
Numeric
v7.17.0 Phase 3.P0-67 — PG NUMERIC(p, s) / DECIMAL(p, s)
— exact-decimal fixed-point. Stored engine-side as
(scaled: i128, scale: u8). Bridges decode into
bigdecimal::BigDecimal (under the bigdecimal
feature) or String (canonical PG decimal text).
Vector
v7.17.0 Phase 3.P0-68 — pgvector VECTOR(N) (any of the
three storage encodings: default f32, USING SQ8,
USING HALF). Bridges decode into Vec<f32> or
String (canonical pgvector external form
'[1, 2.5, -3]'). Quantised storage variants
(Sq8Vector / HalfVector) dequantise to f32 at the
adapter boundary.
TsVector
v7.17.0 Phase 3.P0-68 — PG TSVECTOR (full-text search
document representation). Bridges decode into String
(canonical PG external form
'word1':1 'word2':2,3A'). Encode is intentionally not
supported — clients build tsvector via the to_tsvector
SQL function, not by binding raw lexeme lists.
Null
Unknown / type-erased — used for parameters that the adapter binds without a fixed column-side type yet (e.g. the first bind of a fresh parameter index).
Trait Implementations§
impl Copy for Kind
impl Eq for Kind
impl StructuralPartialEq for Kind
Auto Trait Implementations§
impl Freeze for Kind
impl RefUnwindSafe for Kind
impl Send for Kind
impl Sync for Kind
impl Unpin for Kind
impl UnsafeUnpin for Kind
impl UnwindSafe for Kind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more