pub enum GenericValue {
Null,
Bool(bool),
Int(i64),
Decimal(Decimal),
String(String),
Array(Vec<GenericValue>),
Map(BTreeMap<String, GenericValue>),
}Variants§
Null
Bool(bool)
Int(i64)
Decimal(Decimal)
String(String)
Array(Vec<GenericValue>)
Map(BTreeMap<String, GenericValue>)
Implementations§
Source§impl GenericValue
impl GenericValue
Sourcepub fn is_bindable_scalar(&self) -> bool
pub fn is_bindable_scalar(&self) -> bool
Whether this value can stand as a single SQL parameter, key, or literal:
true for the scalar variants, false for Null and the composite
Array/Map. The one home for that rule — the Postgres source applies
it when binding params, building keys, and inlining literals. Written as
an exhaustive match so a new variant cannot be added without classifying
it here.
Trait Implementations§
Source§impl Clone for GenericValue
impl Clone for GenericValue
Source§fn clone(&self) -> GenericValue
fn clone(&self) -> GenericValue
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GenericValue
impl Debug for GenericValue
Source§impl<'de> Deserialize<'de> for GenericValue
Deserializes from the same natural shape it serializes to, by inspecting
the value’s form rather than expecting serde’s tagged-enum encoding. This
requires a self-describing format (JSON, MessagePack, …); it is what lets a
compiled config round-trip. A Decimal is written as a string by its serde
integration, so a decimal literal round-trips as a String
— a documented edge for the rare decimal constant / default.
impl<'de> Deserialize<'de> for GenericValue
Deserializes from the same natural shape it serializes to, by inspecting
the value’s form rather than expecting serde’s tagged-enum encoding. This
requires a self-describing format (JSON, MessagePack, …); it is what lets a
compiled config round-trip. A Decimal is written as a string by its serde
integration, so a decimal literal round-trips as a String
— a documented edge for the rare decimal constant / default.
Source§fn deserialize<D>(
deserializer: D,
) -> Result<GenericValue, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<GenericValue, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
impl Eq for GenericValue
Source§impl Hash for GenericValue
impl Hash for GenericValue
Source§impl PartialEq for GenericValue
impl PartialEq for GenericValue
Source§fn eq(&self, other: &GenericValue) -> bool
fn eq(&self, other: &GenericValue) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for GenericValue
Serializes to the natural JSON shape — 5, "x", true, null,
[…], {…} — not serde’s externally-tagged enum form ({"Int": 5}). This
is what makes a serialized Config or IndexMapping read like the data it
describes; a value’s variant is evident from its JSON shape.
impl Serialize for GenericValue
Serializes to the natural JSON shape — 5, "x", true, null,
[…], {…} — not serde’s externally-tagged enum form ({"Int": 5}). This
is what makes a serialized Config or IndexMapping read like the data it
describes; a value’s variant is evident from its JSON shape.
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl StructuralPartialEq for GenericValue
Auto Trait Implementations§
impl Freeze for GenericValue
impl RefUnwindSafe for GenericValue
impl Send for GenericValue
impl Sync for GenericValue
impl Unpin for GenericValue
impl UnsafeUnpin for GenericValue
impl UnwindSafe for GenericValue
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.