pub struct Map<'q, DB, F, A>where
DB: Database,{ /* private fields */ }
Expand description
SQL query that will map its results to owned Rust types.
Returned by Query::try_map
, query!()
, etc. Has most of the same methods as Query
but
the return types are changed to reflect the mapping. However, there is no equivalent of
Query::execute
as it doesn’t make sense to map the result type and then ignore it.
Query::bind
is also omitted; stylistically we recommend placing your .bind()
calls
before .try_map()
. This is also to prevent adding superfluous binds to the result of
query!()
et al.
Implementations§
Source§impl<'q, DB, F, O, A> Map<'q, DB, F, A>
impl<'q, DB, F, O, A> Map<'q, DB, F, A>
Sourcepub fn try_map<G, P>(
self,
g: G,
) -> Map<'q, DB, impl FnMut(<DB as Database>::Row) + Send, A>
pub fn try_map<G, P>( self, g: G, ) -> Map<'q, DB, impl FnMut(<DB as Database>::Row) + Send, A>
Sourcepub fn fetch<'e, 'c, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<O, Error>> + Send + 'e>>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
pub fn fetch<'e, 'c, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<O, Error>> + Send + 'e>>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
Execute the query and return the generated results as a stream.
Sourcepub fn fetch_many<'e, 'c, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<Either<<DB as Database>::QueryResult, O>, Error>> + Send + 'e>>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
pub fn fetch_many<'e, 'c, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<Either<<DB as Database>::QueryResult, O>, Error>> + Send + 'e>>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
Execute multiple queries and return the generated results as a stream from each query, in a stream.
Sourcepub async fn fetch_all<'e, 'c, E>(self, executor: E) -> Result<Vec<O>, Error>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
pub async fn fetch_all<'e, 'c, E>(self, executor: E) -> Result<Vec<O>, Error>where
'c: 'e,
'q: 'e,
E: 'e + Executor<'c, Database = DB>,
DB: 'e,
F: 'e,
O: 'e,
Execute the query and return all the generated results, collected into a Vec
.
Trait Implementations§
Source§impl<'q, DB, F, A> Execute<'q, DB> for Map<'q, DB, F, A>
impl<'q, DB, F, A> Execute<'q, DB> for Map<'q, DB, F, A>
Source§fn statement(&self) -> Option<&<DB as HasStatement<'q>>::Statement>
fn statement(&self) -> Option<&<DB as HasStatement<'q>>::Statement>
Gets the previously cached statement, if available.
Source§fn take_arguments(&mut self) -> Option<<DB as HasArguments<'q>>::Arguments>
fn take_arguments(&mut self) -> Option<<DB as HasArguments<'q>>::Arguments>
Returns the arguments to be bound against the query string. Read more
Source§fn persistent(&self) -> bool
fn persistent(&self) -> bool
Returns
true
if the statement should be cached.Auto Trait Implementations§
impl<'q, DB, F, A> Freeze for Map<'q, DB, F, A>
impl<'q, DB, F, A> RefUnwindSafe for Map<'q, DB, F, A>where
F: RefUnwindSafe,
A: RefUnwindSafe,
DB: RefUnwindSafe,
<DB as HasStatement<'q>>::Statement: RefUnwindSafe,
impl<'q, DB, F, A> Send for Map<'q, DB, F, A>
impl<'q, DB, F, A> Sync for Map<'q, DB, F, A>
impl<'q, DB, F, A> Unpin for Map<'q, DB, F, A>
impl<'q, DB, F, A> UnwindSafe for Map<'q, DB, F, A>where
F: UnwindSafe,
A: UnwindSafe,
DB: UnwindSafe,
<DB as HasStatement<'q>>::Statement: RefUnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more