Struct diesel::serialize::Output

source ·
pub struct Output<'a, 'b, DB>where
    DB: Backend,
    DB::MetadataLookup: 'a,{ /* private fields */ }
Expand description

Wraps a buffer to be written by ToSql with additional backend specific utilities.

Implementations§

source§

impl<'a, 'b, DB: Backend> Output<'a, 'b, DB>

source

pub fn new( out: <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer, metadata_lookup: &'b mut DB::MetadataLookup ) -> Self

Construct a new Output

source

pub fn into_inner( self ) -> <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer

Consume the current Output structure to access the inner buffer type

This function is only useful for people implementing their own Backend.

source

pub fn metadata_lookup(&mut self) -> &mut DB::MetadataLookup

Returns the backend’s mechanism for dynamically looking up type metadata at runtime, if relevant for the given backend.

source

pub fn set_value<V>(&mut self, value: V)where V: Into<<DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer>,

Set the inner buffer to a specific value

Checkout the documentation of the type of BindCollector::Buffer for your specific backend for supported types.

source§

impl<'a, 'b, DB> Output<'a, 'b, DB>where for<'c> DB: Backend<BindCollector<'c> = RawBytesBindCollector<DB>>,

source

pub fn reborrow<'c>(&'c mut self) -> Output<'c, 'c, DB> where 'a: 'c,

Call this method whenever you pass an instance of Output<DB> by value.

Effectively copies self, with a narrower lifetime. When passing a reference or a mutable reference, this is normally done by rust implicitly. This is why you can pass &mut Foo to multiple functions, even though mutable references are not Copy. However, this is only done implicitly for references. For structs with lifetimes it must be done explicitly. This method matches the semantics of what Rust would do implicitly if you were passing a mutable reference

Trait Implementations§

source§

impl<'a, 'b, DB> Debug for Output<'a, 'b, DB>where <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: Debug, DB: Backend,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b, DB> Write for Output<'a, 'b, DB>where for<'c> DB: Backend<BindCollector<'c> = RawBytesBindCollector<DB>>,

source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

Write a buffer into this writer, returning how many bytes were written. Read more
source§

fn flush(&mut self) -> Result<()>

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
source§

fn write_all(&mut self, buf: &[u8]) -> Result<()>

Attempts to write an entire buffer into this writer. Read more
source§

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>

Writes a formatted string into this writer, returning any error encountered. Read more
1.36.0 · source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

§

impl<'a, 'b, DB> RefUnwindSafe for Output<'a, 'b, DB>where <<DB as Backend>::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: RefUnwindSafe, <DB as TypeMetadata>::MetadataLookup: RefUnwindSafe,

§

impl<'a, 'b, DB> Send for Output<'a, 'b, DB>where <<DB as Backend>::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: Send, <DB as TypeMetadata>::MetadataLookup: Send,

§

impl<'a, 'b, DB> Sync for Output<'a, 'b, DB>where <<DB as Backend>::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: Sync, <DB as TypeMetadata>::MetadataLookup: Sync,

§

impl<'a, 'b, DB> Unpin for Output<'a, 'b, DB>where <<DB as Backend>::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: Unpin,

§

impl<'a, 'b, DB> !UnwindSafe for Output<'a, 'b, DB>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoSql for T

source§

fn into_sql<T>(self) -> AsExprOf<Self, T>where Self: AsExpression<T> + Sized, T: SqlType + TypedExpressionType,

Convert self to an expression for Diesel’s query builder. Read more
source§

fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.