> ## 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.

# KineticaArrayElement

> KineticaArrayElement — 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#L508-L520)&#x20;

<pre>`pub trait KineticaArrayElement: Sized {    const ELEMENT_OIDS: &'static [u32];    // Required methods    fn from_binary(bytes: Option<&[u8]>) -> Result<Self, BoxDynError>;    fn from_text(text: Option<&str>) -> Result<Self, BoxDynError>;    fn write_json(&self, out: &mut String);}`</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. An element of a Kinetica array: see [`KineticaArray`](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.KineticaArray).

## Required Associated Constants

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L510)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

The OIDs of the PostgreSQL element types Kinetica sends this as.

## Required Methods

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L513)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

An element from its binary form, `None` for a null.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L516)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

An element from its text form, `None` for a null.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L519)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Appends the element as JSON.

## Dyn Compatibility

This trait is not [dyn compatible](https://doc.rust-lang.org/1.98.1/reference/items/traits.html#dyn-compatibility).In older versions of Rust, dyn compatibility was called "object safety".

## Implementations on Foreign Types

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L579-L593)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L580)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)] = TEXT\_OIDS

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L582-L584)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L586-L588)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L590-L592)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L556-L574)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L557)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L559-L561)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L563-L569)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L571-L573)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L553)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [f32](https://doc.rust-lang.org/1.98.1/std/primitive.f32.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L553)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L553)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L553)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L553)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L554)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [f64](https://doc.rust-lang.org/1.98.1/std/primitive.f64.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L554)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L554)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L554)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L554)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L551)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [i32](https://doc.rust-lang.org/1.98.1/std/primitive.i32.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L551)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L551)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L551)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L551)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L552)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L552)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)]

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L552)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L552)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L552)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L596-L610)
impl [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [u64](https://doc.rust-lang.org/1.98.1/std/primitive.u64.html)

Kinetica sends `UNSIGNED BIGINT[]` as text elements.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L597)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)] = TEXT\_OIDS

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L599-L601)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L603-L605)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L607-L609)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L612-L629)
impl\<T: [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md)> [KineticaArrayElement](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaArrayElement.md) for [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<T>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L613)
const [ELEMENT\_OIDS](#associatedconstant.ELEMENT_OIDS): &'static \[[u32](https://doc.rust-lang.org/1.98.1/std/primitive.u32.html)] = T::ELEMENT\_OIDS

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L615-L617)
fn [from\_binary](#tymethod.from_binary)(bytes: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&\[[u8](https://doc.rust-lang.org/1.98.1/std/primitive.u8.html)]>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L619-L621)
fn [from\_text](#tymethod.from_text)(text: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<Self, BoxDynError>

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_types.rs#L623-L628)
fn [write\_json](#tymethod.write_json)(\&self, out: \&mut [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

## Implementors


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