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>
impl<'a, 'b, DB: Backend> Output<'a, 'b, DB>
sourcepub fn new(
out: <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer,
metadata_lookup: &'b mut DB::MetadataLookup
) -> Self
pub fn new( out: <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer, metadata_lookup: &'b mut DB::MetadataLookup ) -> Self
Construct a new Output
sourcepub fn into_inner(
self
) -> <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer
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.
sourcepub fn metadata_lookup(&mut self) -> &mut DB::MetadataLookup
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.
sourcepub fn set_value<V>(&mut self, value: V)where
V: Into<<DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer>,
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>>,
impl<'a, 'b, DB> Output<'a, 'b, DB>where for<'c> DB: Backend<BindCollector<'c> = RawBytesBindCollector<DB>>,
sourcepub fn reborrow<'c>(&'c mut self) -> Output<'c, 'c, DB> ⓘwhere
'a: 'c,
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,
impl<'a, 'b, DB> Debug for Output<'a, 'b, DB>where <DB::BindCollector<'a> as BindCollector<'a, DB>>::Buffer: Debug, DB: Backend,
source§impl<'a, 'b, DB> Write for Output<'a, 'b, DB>where
for<'c> DB: Backend<BindCollector<'c> = RawBytesBindCollector<DB>>,
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>
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
source§fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<()>
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> AsExprOf<Self, T>where
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> AsExprOf<Self, T>where Self: AsExpression<T> + Sized, T: SqlType + TypedExpressionType,
self
to an expression for Diesel’s query builder. Read moresource§fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>where
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,
&self
to an expression for Diesel’s query builder. Read more