pub struct QueryScalar { /* private fields */ }Expand description
Execute a SELECT query and return a single scalar value.
The query must return exactly one row with one column.
§Examples
use ironflow_ops_postgres::query::QueryScalar;
use ironflow_core::operation::Operation;
let op = QueryScalar::new(pool, "SELECT count(*) FROM users", vec![]);
assert_eq!(op.kind(), "postgres");Implementations§
Source§impl QueryScalar
impl QueryScalar
Sourcepub fn new(pool: PgPool, sql: impl Into<String>, params: Vec<Value>) -> Self
pub fn new(pool: PgPool, sql: impl Into<String>, params: Vec<Value>) -> Self
Create a new query-scalar operation.
Sourcepub async fn run(
&self,
_ctx: &OperationContext,
) -> Result<QueryScalarOutput, OperationError>
pub async fn run( &self, _ctx: &OperationContext, ) -> Result<QueryScalarOutput, OperationError>
Execute and return a typed result.
§Errors
Returns OperationError::External on SQL/connection errors or if the
query does not return exactly one row with one column.
Trait Implementations§
Source§impl Operation for QueryScalar
impl Operation for QueryScalar
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 OperationContext,
) -> Pin<Box<dyn Future<Output = Result<Value, OperationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 OperationContext,
) -> Pin<Box<dyn Future<Output = Result<Value, OperationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the operation and return the result as JSON. Read more
Source§impl TypedOperation for QueryScalar
impl TypedOperation for QueryScalar
Source§type Output = QueryScalarOutput
type Output = QueryScalarOutput
The concrete output type that
Operation::execute produces.Auto Trait Implementations§
impl !RefUnwindSafe for QueryScalar
impl !UnwindSafe for QueryScalar
impl Freeze for QueryScalar
impl Send for QueryScalar
impl Sync for QueryScalar
impl Unpin for QueryScalar
impl UnsafeUnpin for QueryScalar
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
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