Trait Encode

Source
pub trait Encode<'q, DB>
where DB: Database,
{ // Required method fn encode_by_ref( &self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull; // Provided methods fn encode( self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull where Self: Sized { ... } fn produces(&self) -> Option<<DB as Database>::TypeInfo> { ... } fn size_hint(&self) -> usize { ... } }
Expand description

Encode a single value to be sent to the database.

Required Methodsยง

Source

fn encode_by_ref( &self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Writes the value of self into buf without moving self.

Where possible, make use of encode instead as it can take advantage of re-using memory.

Provided Methodsยง

Source

fn encode(self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer) -> IsNull
where Self: Sized,

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

Source

fn produces(&self) -> Option<<DB as Database>::TypeInfo>

Source

fn size_hint(&self) -> usize

Implementations on Foreign Typesยง

Sourceยง

impl Encode<'_, Postgres> for &str

Sourceยง

impl Encode<'_, Postgres> for &[u8]

Sourceยง

impl Encode<'_, Postgres> for Cow<'_, str>

Sourceยง

impl Encode<'_, Postgres> for bool

Sourceยง

impl Encode<'_, Postgres> for f32

Sourceยง

impl Encode<'_, Postgres> for f64

Sourceยง

impl Encode<'_, Postgres> for i8

Sourceยง

impl Encode<'_, Postgres> for i16

Sourceยง

impl Encode<'_, Postgres> for i32

Sourceยง

impl Encode<'_, Postgres> for i64

Sourceยง

impl Encode<'_, Postgres> for Box<str>

Sourceยง

impl Encode<'_, Postgres> for Box<[u8]>

Sourceยง

impl Encode<'_, Postgres> for String

Sourceยง

impl Encode<'_, Postgres> for Vec<u8>

Sourceยง

impl Encode<'_, Postgres> for Duration

Sourceยง

impl Encode<'_, Postgres> for TimeDelta

Sourceยง

impl Encode<'_, Postgres> for Duration

Sourceยง

impl Encode<'_, Sqlite> for Box<str>

Sourceยง

impl Encode<'_, Sqlite> for Box<[u8]>

Sourceยง

impl<'a> Encode<'a, Any> for &'a str

Sourceยง

fn encode(self, buf: &mut <Any as HasArguments<'a>>::ArgumentBuffer) -> IsNull
where &'a str: Sized,

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'a>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'db> Encode<'db, Postgres> for IpAddr
where IpNetwork: Encode<'db, Postgres>,

Sourceยง

impl<'q> Encode<'q, Any> for &'q [u8]

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for bool

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for f32

Sourceยง

impl<'q> Encode<'q, Any> for f64

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for i16

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for i32

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for i64

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for String

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Any> for Vec<u8>

Sourceยง

fn encode_by_ref( &self, buf: &mut <Any as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

impl<'q> Encode<'q, Sqlite> for &'q str

Sourceยง

impl<'q> Encode<'q, Sqlite> for &'q [u8]

Sourceยง

impl<'q> Encode<'q, Sqlite> for Cow<'q, str>

Sourceยง

impl<'q> Encode<'q, Sqlite> for bool

Sourceยง

impl<'q> Encode<'q, Sqlite> for f32

Sourceยง

impl<'q> Encode<'q, Sqlite> for f64

Sourceยง

impl<'q> Encode<'q, Sqlite> for i8

Sourceยง

impl<'q> Encode<'q, Sqlite> for i16

Sourceยง

impl<'q> Encode<'q, Sqlite> for i32

Sourceยง

impl<'q> Encode<'q, Sqlite> for i64

Sourceยง

impl<'q> Encode<'q, Sqlite> for u8

Sourceยง

impl<'q> Encode<'q, Sqlite> for u16

Sourceยง

impl<'q> Encode<'q, Sqlite> for u32

Sourceยง

impl<'q> Encode<'q, Sqlite> for String

Sourceยง

impl<'q> Encode<'q, Sqlite> for Vec<u8>

Sourceยง

impl<'q, T> Encode<'q, Any> for Option<T>
where T: Encode<'q, Any> + 'q + Type<Any>,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for &[T]
where T: Encode<'q, Postgres> + Type<Postgres>,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for Option<T>
where T: Encode<'q, Postgres> + Type<Postgres> + 'q,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for Vec<T>
where &'a [T]: for<'a> Encode<'q, Postgres>, T: Encode<'q, Postgres>,

Sourceยง

impl<'q, T> Encode<'q, Sqlite> for Option<T>
where T: Encode<'q, Sqlite> + Type<Sqlite> + 'q,

Sourceยง

impl<'q, T, DB> Encode<'q, DB> for &T
where DB: Database, T: Encode<'q, DB>,

Sourceยง

fn encode(self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer) -> IsNull

Sourceยง

fn encode_by_ref( &self, buf: &mut <DB as HasArguments<'q>>::ArgumentBuffer, ) -> IsNull

Sourceยง

fn produces(&self) -> Option<<DB as Database>::TypeInfo>

Sourceยง

fn size_hint(&self) -> usize

Sourceยง

impl<'q, T, const N: usize> Encode<'q, Postgres> for [T; N]
where &'a [T]: for<'a> Encode<'q, Postgres>, T: Encode<'q, Postgres>,

Sourceยง

impl<const N: usize> Encode<'_, Postgres> for [u8; N]

Implementorsยง

Sourceยง

impl Encode<'_, Postgres> for IpNetwork

Sourceยง

impl Encode<'_, Postgres> for Oid

Sourceยง

impl Encode<'_, Postgres> for PgCiText

Sourceยง

impl Encode<'_, Postgres> for PgInterval

Sourceยง

impl Encode<'_, Postgres> for PgLQuery

Sourceยง

impl Encode<'_, Postgres> for PgLTree

Sourceยง

impl Encode<'_, Postgres> for PgMoney

Sourceยง

impl Encode<'_, Postgres> for PgTimeTz

Sourceยง

impl Encode<'_, Postgres> for PgTimeTz<NaiveTime, FixedOffset>

Sourceยง

impl Encode<'_, Postgres> for NaiveDate

Sourceยง

impl Encode<'_, Postgres> for NaiveDateTime

Sourceยง

impl Encode<'_, Postgres> for NaiveTime

Sourceยง

impl Encode<'_, Postgres> for MacAddress

Sourceยง

impl Encode<'_, Postgres> for BigDecimal

ยงNote: BigDecimal Has a Larger Range than NUMERIC

BigDecimal can represent values with a far, far greater range than the NUMERIC type in Postgres can.

NUMERIC is limited to 131,072 digits before the decimal point, and 16,384 digits after it. See Section 8.1, Numeric Types of the Postgres manual for details.

Meanwhile, BigDecimal can theoretically represent a value with an arbitrary number of decimal digits, albeit with a maximum of 263 significant figures.

Because encoding in the current API design must be infallible, when attempting to encode a BigDecimal that cannot fit in the wire representation of NUMERIC, SQLx may instead encode a sentinel value that falls outside the allowed range but is still representable.

This will cause the query to return a DatabaseError with code 22P03 (invalid_binary_representation) and the error message invalid scale in external "numeric" value (though this may be subject to change).

However, BigDecimal should be able to decode any NUMERIC value except NaN, for which it has no representation.

Sourceยง

impl Encode<'_, Postgres> for BitVec

Sourceยง

impl Encode<'_, Postgres> for Decimal

Sourceยง

impl Encode<'_, Postgres> for Uuid

Sourceยง

impl Encode<'_, Postgres> for Date

Sourceยง

impl Encode<'_, Postgres> for OffsetDateTime

Sourceยง

impl Encode<'_, Postgres> for PrimitiveDateTime

Sourceยง

impl Encode<'_, Postgres> for Time

Sourceยง

impl Encode<'_, Sqlite> for NaiveDate

Sourceยง

impl Encode<'_, Sqlite> for NaiveDateTime

Sourceยง

impl Encode<'_, Sqlite> for NaiveTime

Sourceยง

impl Encode<'_, Sqlite> for Date

Sourceยง

impl Encode<'_, Sqlite> for OffsetDateTime

Sourceยง

impl Encode<'_, Sqlite> for PrimitiveDateTime

Sourceยง

impl Encode<'_, Sqlite> for Time

Sourceยง

impl<'q> Encode<'q, Sqlite> for Uuid

Sourceยง

impl<'q> Encode<'q, Sqlite> for Hyphenated

Sourceยง

impl<'q> Encode<'q, Sqlite> for Simple

Sourceยง

impl<'q, DB> Encode<'q, DB> for Value
where Json<&'a Value>: for<'a> Encode<'q, DB>, DB: Database,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for PgRange<T>
where T: Encode<'q, Postgres>,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for Json<T>
where T: Serialize,

Sourceยง

impl<'q, T> Encode<'q, Postgres> for Text<T>
where T: Display,

Sourceยง

impl<'q, T> Encode<'q, Sqlite> for Text<T>
where T: Display,

Sourceยง

impl<T> Encode<'_, Sqlite> for Json<T>
where T: Serialize,

Sourceยง

impl<Tz> Encode<'_, Postgres> for DateTime<Tz>
where Tz: TimeZone,

Sourceยง

impl<Tz> Encode<'_, Sqlite> for DateTime<Tz>
where Tz: TimeZone, <Tz as TimeZone>::Offset: Display,