> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KineticaJson

> KineticaJson — Kinetica Rust API

[gpudb\_api](https://docs.kinetica.com/content/api/rust/index.md)::<wbr />[sqlx\_support](https://docs.kinetica.com/content/api/rust/sqlx_support/index.md)
[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L319)&#x20;

<pre>`pub struct KineticaJson<T>(pub T);`</pre>

Values for the Kinetica types SQLx’s own PostgreSQL types cannot read or write over Kinetica’s protocol, or cannot reliably: see their module. A `JSON` column’s value: anything serde serializes, bound directly as JSON, and read back from the JSON Kinetica sends.SQLx’s own `serde_json::Value` and `sqlx::types::Json` bind as PostgreSQL’s `JSONB`, whose binary form starts with a version byte, which Kinetica refuses as invalid JSON. This binds the `JSON` type instead, whose value is the JSON text itself, so it reaches its column in any parameter position. It reads `JSON` and `JSONB` columns, and text such as `JSON_QUERY`’s.

Tuple Fields
`0: T`
Trait Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html)> [Clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)(\&self) -> [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

Returns a duplicate of the value. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/142757)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/clone.rs.html#245-247)
fn [clone\_from](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)(\&mut self, source: \&Self)

Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Copy](https://doc.rust-lang.org/1.98.1/core/marker/trait.Copy.html)> [Copy](https://doc.rust-lang.org/1.98.1/core/marker/trait.Copy.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Debug](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html)> [Debug](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [fmt](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)(\&self, f: \&mut [Formatter](https://doc.rust-lang.org/1.98.1/core/fmt/struct.Formatter.html)\<'\_>) -> [Result](https://doc.rust-lang.org/1.98.1/core/fmt/type.Result.html)

Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L343-L354)
impl\<'r, T: [DeserializeOwned](https://docs.rs/serde_core/1.0.228/serde_core/de/trait.DeserializeOwned.html)> Decode\<'r, Postgres> for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L344-L353)
fn decode(value: PgValueRef\<'r>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

Decode a new value of this type using a raw value from the database.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Default](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html)> [Default](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [default](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html#tymethod.default)() -> [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

Returns the “default value” for a type. [Read more](https://doc.rust-lang.org/1.98.1/core/default/trait.Default.html#tymethod.default)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L337-L341)
impl\<T: [Serialize](https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html)> Encode\<'\_, Postgres> for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L338-L340)
fn encode\_by\_ref( \&self, buf: \&mut PgArgumentBuffer, ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<IsNull, BoxDynError>

Writes the value of `self` into `buf` without moving `self`. Read more

#### fn encode( self, buf: \&mut \<DB as Database>::ArgumentBuffer\<'q>, ) ->[Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<IsNull, [Box](https://doc.rust-lang.org/1.98.1/alloc/boxed/struct.Box.html)\<dyn [Error](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html) + [Send](https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html) + [Sync](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sync.html)>>&#xA;where Self: [Sized](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html),

Writes the value of `self` into `buf` in the expected format for the database.

#### fn produces(\&self) -> [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<\<DB as Database>::TypeInfo>

#### fn size\_hint(\&self) -> [usize](https://doc.rust-lang.org/1.98.1/std/primitive.usize.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Eq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Eq.html)> [Eq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Eq.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Hash](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html)> [Hash](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [hash](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html#tymethod.hash)\<\_\_H: [Hasher](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hasher.html)>(\&self, state: [\&mut \_\_H](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html))

Feeds this value into the given [`Hasher`](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hasher.html). [Read more](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html#tymethod.hash)

1.3.0 · [Source](https://doc.rust-lang.org/1.98.1/src/core/hash/mod.rs.html#234-236)

#### fn [hash\_slice](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html#method.hash_slice)\<H>(data: &\[Self], state: [\&mut H](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html))&#xA;where H: [Hasher](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hasher.html), Self: [Sized](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html),

Feeds a slice of this type into the given [`Hasher`](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hasher.html). [Read more](https://doc.rust-lang.org/1.98.1/core/hash/trait.Hash.html#method.hash_slice)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [Ord](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html)> [Ord](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [cmp](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#tymethod.cmp)(\&self, other: &[KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>) -> [Ordering](https://doc.rust-lang.org/1.98.1/core/cmp/enum.Ordering.html)

This method returns an [`Ordering`](https://doc.rust-lang.org/1.98.1/core/cmp/enum.Ordering.html) between `self` and `other`. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#tymethod.cmp)

1.21.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1034-1036)

#### fn [max](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.max)(self, other: Self) -> Self&#xA;where Self: [Sized](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html),

Compares and returns the maximum of two values. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.max)

1.21.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1073-1075)

#### fn [min](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.min)(self, other: Self) -> Self&#xA;where Self: [Sized](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html),

Compares and returns the minimum of two values. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.min)

1.50.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1099-1101)

#### fn [clamp](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.clamp)(self, min: Self, max: Self) -> Self&#xA;where Self: [Sized](https://doc.rust-lang.org/1.98.1/core/marker/trait.Sized.html),

Restrict a value to a certain interval. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.Ord.html#method.clamp)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [PartialEq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialEq.html)> [PartialEq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialEq.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [eq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialEq.html#tymethod.eq)(\&self, other: &[KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests for `self` and `other` values to be equal, and is used by `==`.

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#263)
fn [ne](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialEq.html#method.ne)(\&self, other: [\&Rhs](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html)) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [PartialOrd](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html)> [PartialOrd](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
fn [partial\_cmp](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp)(\&self, other: &[KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>) -> [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<[Ordering](https://doc.rust-lang.org/1.98.1/core/cmp/enum.Ordering.html)>

This method returns an ordering between `self` and `other` values if one exists. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#tymethod.partial_cmp)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1410)
fn [lt](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.lt)(\&self, other: [\&Rhs](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html)) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests less than (for `self` and `other`) and is used by the `<` operator. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.lt)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1428)
fn [le](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.le)(\&self, other: [\&Rhs](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html)) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests less than or equal to (for `self` and `other`) and is used by the `<=` operator. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.le)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1446)
fn [gt](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.gt)(\&self, other: [\&Rhs](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html)) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests greater than (for `self` and `other`) and is used by the `>` operator. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.gt)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/143800)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/cmp.rs.html#1464)
fn [ge](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.ge)(\&self, other: [\&Rhs](https://doc.rust-lang.org/1.98.1/std/primitive.reference.html)) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Tests greater than or equal to (for `self` and `other`) and is used by the `>=` operator. [Read more](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialOrd.html#method.ge)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L318)
impl\<T: [PartialEq](https://doc.rust-lang.org/1.98.1/core/cmp/trait.PartialEq.html)> [StructuralPartialEq](https://doc.rust-lang.org/1.98.1/core/marker/trait.StructuralPartialEq.html) for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L327-L335)
impl\<T> Type\<Postgres> for [KineticaJson](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaJson.md)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L328-L330)
fn type\_info() -> PgTypeInfo

Returns the canonical SQL type for this Rust type. Read more

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L332-L334)
fn compatible(ty: \&PgTypeInfo) -> [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

Determines if this Rust type is compatible with the given SQL type. Read more


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.