Trait mysql_async::prelude::Query
source · pub trait Query: Send + Sized {
type Protocol: Protocol;
// Required method
fn run<'a, 't: 'a, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<QueryResult<'a, 't, Self::Protocol>>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a;
// Provided methods
fn first<'a, 't: 'a, T, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<Option<T>>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a,
T: FromRow + Send + 'static { ... }
fn fetch<'a, 't: 'a, T, C>(self, conn: C) -> BoxFuture<'a, Result<Vec<T>>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a,
T: FromRow + Send + 'static { ... }
fn reduce<'a, 't: 'a, T, U, F, C>(
self,
conn: C,
init: U,
next: F,
) -> BoxFuture<'a, Result<U>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a,
F: FnMut(U, T) -> U + Send + 'a,
T: FromRow + Send + 'static,
U: Send + 'a { ... }
fn map<'a, 't: 'a, T, U, F, C>(
self,
conn: C,
map: F,
) -> BoxFuture<'a, Result<Vec<U>>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a,
F: FnMut(T) -> U + Send + 'a,
T: FromRow + Send + 'static,
U: Send + 'a { ... }
fn stream<'a, 't: 'a, T, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<ResultSetStream<'a, 'a, 't, T, Self::Protocol>>>
where Self: 'a,
Self::Protocol: Unpin,
T: Unpin + FromRow + Send + 'static,
C: ToConnection<'a, 't> + 'a { ... }
fn ignore<'a, 't: 'a, C>(self, conn: C) -> BoxFuture<'a, Result<()>>
where Self: 'a,
C: ToConnection<'a, 't> + 'a { ... }
}
Expand description
MySql text query.
This trait covers the set of query*
methods on the Queryable
trait.
Example:
use mysql_async::*;
use mysql_async::prelude::*;
let pool = Pool::new(get_opts());
// text protocol query
let num: Option<u32> = "SELECT 42".first(&pool).await?;
assert_eq!(num, Some(42));
// binary protocol query (prepared statement)
let row: Option<(u32, String)> = "SELECT ?, ?".with((42, "foo")).first(&pool).await?;
assert_eq!(row.unwrap(), (42, "foo".into()));
Required Associated Types§
Required Methods§
sourcefn run<'a, 't: 'a, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<QueryResult<'a, 't, Self::Protocol>>>where
Self: 'a,
C: ToConnection<'a, 't> + 'a,
fn run<'a, 't: 'a, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<QueryResult<'a, 't, Self::Protocol>>>where
Self: 'a,
C: ToConnection<'a, 't> + 'a,
This method corresponds to Queryable::query_iter
.
Provided Methods§
sourcefn first<'a, 't: 'a, T, C>(self, conn: C) -> BoxFuture<'a, Result<Option<T>>>
fn first<'a, 't: 'a, T, C>(self, conn: C) -> BoxFuture<'a, Result<Option<T>>>
This methods corresponds to Queryable::query_first
.
sourcefn fetch<'a, 't: 'a, T, C>(self, conn: C) -> BoxFuture<'a, Result<Vec<T>>>
fn fetch<'a, 't: 'a, T, C>(self, conn: C) -> BoxFuture<'a, Result<Vec<T>>>
This methods corresponds to Queryable::query
.
sourcefn reduce<'a, 't: 'a, T, U, F, C>(
self,
conn: C,
init: U,
next: F,
) -> BoxFuture<'a, Result<U>>
fn reduce<'a, 't: 'a, T, U, F, C>( self, conn: C, init: U, next: F, ) -> BoxFuture<'a, Result<U>>
This methods corresponds to Queryable::query_fold
.
sourcefn map<'a, 't: 'a, T, U, F, C>(
self,
conn: C,
map: F,
) -> BoxFuture<'a, Result<Vec<U>>>
fn map<'a, 't: 'a, T, U, F, C>( self, conn: C, map: F, ) -> BoxFuture<'a, Result<Vec<U>>>
This methods corresponds to Queryable::query_map
.
sourcefn stream<'a, 't: 'a, T, C>(
self,
conn: C,
) -> BoxFuture<'a, Result<ResultSetStream<'a, 'a, 't, T, Self::Protocol>>>
fn stream<'a, 't: 'a, T, C>( self, conn: C, ) -> BoxFuture<'a, Result<ResultSetStream<'a, 'a, 't, T, Self::Protocol>>>
Returns a stream over the first result set.
This method corresponds to QueryResult::stream_and_drop
.
sourcefn ignore<'a, 't: 'a, C>(self, conn: C) -> BoxFuture<'a, Result<()>>where
Self: 'a,
C: ToConnection<'a, 't> + 'a,
fn ignore<'a, 't: 'a, C>(self, conn: C) -> BoxFuture<'a, Result<()>>where
Self: 'a,
C: ToConnection<'a, 't> + 'a,
This method corresponds to Queryable::query_drop
.
Object Safety§
This trait is not object safe.