Trait diesel::serialize::WriteTuple
source · pub trait WriteTuple<ST> {
// Required method
fn write_tuple(&self, out: &mut Output<'_, '_, Pg>) -> Result;
}
Available on crate feature
postgres_backend
only.Expand description
Helper trait for writing tuples as named composite types
This trait is essentially ToSql<Record<ST>>
for tuples.
While we can provide a valid body of to_sql
,
PostgreSQL doesn’t allow the use of bind parameters for unnamed composite types.
For this reason, we avoid implementing ToSql
directly.
This trait can be used by ToSql
impls of named composite types.
Example
#[derive(SqlType)]
#[diesel(postgres_type(name = "my_type"))]
struct MyType;
#[derive(Debug)]
struct MyStruct<'a>(i32, &'a str);
impl<'a> ToSql<MyType, Pg> for MyStruct<'a> {
fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, Pg>) -> serialize::Result {
WriteTuple::<(Integer, Text)>::write_tuple(
&(self.0, self.1),
&mut out.reborrow(),
)
}
}
Required Methods§
sourcefn write_tuple(&self, out: &mut Output<'_, '_, Pg>) -> Result
fn write_tuple(&self, out: &mut Output<'_, '_, Pg>) -> Result
See trait documentation.