Struct RawSql
pub struct RawSql<'q>(/* private fields */);Expand description
One or more raw SQL statements, separated by semicolons (;).
See raw_sql() for details.
Implementations§
§impl<'q> RawSql<'q>
impl<'q> RawSql<'q>
pub async fn execute<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::QueryResult, Error>where
'q: 'e,
E: Executor<'e>,
pub async fn execute<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::QueryResult, Error>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string and return the total number of rows affected.
pub fn execute_many<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<<<E as Executor<'e>>::Database as Database>::QueryResult, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
pub fn execute_many<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<<<E as Executor<'e>>::Database as Database>::QueryResult, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string. Returns a stream which gives the number of rows affected for each statement in the string.
pub fn fetch<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<<<E as Executor<'e>>::Database as Database>::Row, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
pub fn fetch<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<<<E as Executor<'e>>::Database as Database>::Row, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string and return the generated results as a stream.
If the string contains multiple statements, their results will be concatenated together.
pub fn fetch_many<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<Either<<<E as Executor<'e>>::Database as Database>::QueryResult, <<E as Executor<'e>>::Database as Database>::Row>, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
pub fn fetch_many<'e, E>(
self,
executor: E,
) -> Pin<Box<dyn Stream<Item = Result<Either<<<E as Executor<'e>>::Database as Database>::QueryResult, <<E as Executor<'e>>::Database as Database>::Row>, Error>> + Send + 'e>>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string and return the generated results as a stream.
For each query in the stream, any generated rows are returned first,
then the QueryResult with the number of rows affected.
pub async fn fetch_all<'e, E>(
self,
executor: E,
) -> Result<Vec<<<E as Executor<'e>>::Database as Database>::Row>, Error>where
'q: 'e,
E: Executor<'e>,
pub async fn fetch_all<'e, E>(
self,
executor: E,
) -> Result<Vec<<<E as Executor<'e>>::Database as Database>::Row>, Error>where
'q: 'e,
E: Executor<'e>,
pub async fn fetch_one<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::Row, Error>where
'q: 'e,
E: Executor<'e>,
pub async fn fetch_one<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::Row, Error>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string, returning the first row or Error::RowNotFound otherwise.
§Note: for best performance, ensure the query returns at most one row.
Depending on the driver implementation, if your query can return more than one row, it may lead to wasted CPU time and bandwidth on the database server.
Even when the driver implementation takes this into account, ensuring the query returns at most one row can result in a more optimal query plan.
If your query has a WHERE clause filtering a unique column by a single value, you’re good.
Otherwise, you might want to add LIMIT 1 to your query.
pub async fn fetch_optional<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::Row, Error>where
'q: 'e,
E: Executor<'e>,
pub async fn fetch_optional<'e, E>(
self,
executor: E,
) -> Result<<<E as Executor<'e>>::Database as Database>::Row, Error>where
'q: 'e,
E: Executor<'e>,
Execute the SQL string, returning the first row or None otherwise.
§Note: for best performance, ensure the query returns at most one row.
Depending on the driver implementation, if your query can return more than one row, it may lead to wasted CPU time and bandwidth on the database server.
Even when the driver implementation takes this into account, ensuring the query returns at most one row can result in a more optimal query plan.
If your query has a WHERE clause filtering a unique column by a single value, you’re good.
Otherwise, you might want to add LIMIT 1 to your query.
Trait Implementations§
§impl<'q, DB> Execute<'q, DB> for RawSql<'q>where
DB: Database,
impl<'q, DB> Execute<'q, DB> for RawSql<'q>where
DB: Database,
§fn statement(&self) -> Option<&<DB as Database>::Statement<'q>>
fn statement(&self) -> Option<&<DB as Database>::Statement<'q>>
§fn take_arguments(
&mut self,
) -> Result<Option<<DB as Database>::Arguments<'q>>, Box<dyn Error + Sync + Send>>
fn take_arguments( &mut self, ) -> Result<Option<<DB as Database>::Arguments<'q>>, Box<dyn Error + Sync + Send>>
§fn persistent(&self) -> bool
fn persistent(&self) -> bool
true if the statement should be cached.Auto Trait Implementations§
impl<'q> Freeze for RawSql<'q>
impl<'q> RefUnwindSafe for RawSql<'q>
impl<'q> Send for RawSql<'q>
impl<'q> Sync for RawSql<'q>
impl<'q> Unpin for RawSql<'q>
impl<'q> UnsafeUnpin for RawSql<'q>
impl<'q> UnwindSafe for RawSql<'q>
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> ⓘ
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> ⓘ
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§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);