pub struct QueryOne { /* private fields */ }Expand description
Execute a SELECT query and return exactly one row.
§Errors
Returns an error if the query returns zero rows or more than one row.
§Examples
use ironflow_ops_postgres::query::QueryOne;
use ironflow_core::operation::Operation;
let op = QueryOne::new(pool, "SELECT id, name FROM users WHERE id = $1", vec![serde_json::json!(1)]);
assert_eq!(op.kind(), "postgres");Implementations§
Source§impl QueryOne
impl QueryOne
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-one operation.
Sourcepub async fn run(
&self,
_ctx: &OperationContext,
) -> Result<QueryOneOutput, OperationError>
pub async fn run( &self, _ctx: &OperationContext, ) -> Result<QueryOneOutput, OperationError>
Execute and return a typed result.
§Errors
Returns OperationError::External if the query returns zero rows,
more than one row, or on SQL/connection errors.
Trait Implementations§
Source§impl Operation for QueryOne
impl Operation for QueryOne
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 QueryOne
impl TypedOperation for QueryOne
Source§type Output = QueryOneOutput
type Output = QueryOneOutput
The concrete output type that
Operation::execute produces.Auto Trait Implementations§
impl !RefUnwindSafe for QueryOne
impl !UnwindSafe for QueryOne
impl Freeze for QueryOne
impl Send for QueryOne
impl Sync for QueryOne
impl Unpin for QueryOne
impl UnsafeUnpin for QueryOne
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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