pub struct EsQuery<'q, Repo, Flavor, F, A> { /* private fields */ }Expand description
Query builder for event-sourced entities.
This type is generated by the es_query! macro and should not be constructed directly.
It wraps a SQLx query and provides methods to fetch and hydrate entities from their events.
Implementations§
Source§impl<'q, Repo, F, A> EsQuery<'q, Repo, EsQueryFlavorFlat, F, A>
impl<'q, Repo, F, A> EsQuery<'q, Repo, EsQueryFlavorFlat, F, A>
Sourcepub async fn fetch_optional(
self,
op: impl IntoOneTimeExecutor<'_>,
) -> Result<Option<<Repo as EsRepo>::Entity>, <Repo as EsRepo>::Err>
pub async fn fetch_optional( self, op: impl IntoOneTimeExecutor<'_>, ) -> Result<Option<<Repo as EsRepo>::Entity>, <Repo as EsRepo>::Err>
Fetches at most one entity from the query results.
Returns Ok(None) if no entities match the query, or Ok(Some(entity)) if found.
Sourcepub async fn fetch_one(
self,
op: impl IntoOneTimeExecutor<'_>,
) -> Result<<Repo as EsRepo>::Entity, <Repo as EsRepo>::Err>
pub async fn fetch_one( self, op: impl IntoOneTimeExecutor<'_>, ) -> Result<<Repo as EsRepo>::Entity, <Repo as EsRepo>::Err>
Fetches exactly one entity from the query results.
Returns an error if no entities match or if the entity cannot be loaded.
Sourcepub async fn fetch_n(
self,
op: impl IntoOneTimeExecutor<'_>,
first: usize,
) -> Result<(Vec<<Repo as EsRepo>::Entity>, bool), <Repo as EsRepo>::Err>
pub async fn fetch_n( self, op: impl IntoOneTimeExecutor<'_>, first: usize, ) -> Result<(Vec<<Repo as EsRepo>::Entity>, bool), <Repo as EsRepo>::Err>
Fetches up to first entities from the query results.
Returns a tuple of (entities, has_more) where has_more indicates if there
were more entities available beyond the requested limit.
Source§impl<'q, Repo, F, A> EsQuery<'q, Repo, EsQueryFlavorNested, F, A>
impl<'q, Repo, F, A> EsQuery<'q, Repo, EsQueryFlavorNested, F, A>
Sourcepub async fn fetch_optional<OP>(
self,
op: &mut OP,
) -> Result<Option<<Repo as EsRepo>::Entity>, <Repo as EsRepo>::Err>where
OP: AtomicOperation,
pub async fn fetch_optional<OP>(
self,
op: &mut OP,
) -> Result<Option<<Repo as EsRepo>::Entity>, <Repo as EsRepo>::Err>where
OP: AtomicOperation,
Fetches at most one entity and loads all nested relationships.
Returns Ok(None) if no entities match, or Ok(Some(entity)) with all
nested entities loaded if found.
Sourcepub async fn fetch_one<OP>(
self,
op: &mut OP,
) -> Result<<Repo as EsRepo>::Entity, <Repo as EsRepo>::Err>where
OP: AtomicOperation,
pub async fn fetch_one<OP>(
self,
op: &mut OP,
) -> Result<<Repo as EsRepo>::Entity, <Repo as EsRepo>::Err>where
OP: AtomicOperation,
Fetches exactly one entity and loads all nested relationships.
Returns an error if no entities match or if the entity/nested relationships cannot be loaded.
Sourcepub async fn fetch_n<OP>(
self,
op: &mut OP,
first: usize,
) -> Result<(Vec<<Repo as EsRepo>::Entity>, bool), <Repo as EsRepo>::Err>where
OP: AtomicOperation,
pub async fn fetch_n<OP>(
self,
op: &mut OP,
first: usize,
) -> Result<(Vec<<Repo as EsRepo>::Entity>, bool), <Repo as EsRepo>::Err>where
OP: AtomicOperation,
Fetches up to first entities and loads all nested relationships.
Returns a tuple of (entities, has_more) where all entities have their nested
relationships loaded, and has_more indicates if more entities were available.
Auto Trait Implementations§
impl<'q, Repo, Flavor, F, A> Freeze for EsQuery<'q, Repo, Flavor, F, A>
impl<'q, Repo, Flavor, F, A> !RefUnwindSafe for EsQuery<'q, Repo, Flavor, F, A>
impl<'q, Repo, Flavor, F, A> Send for EsQuery<'q, Repo, Flavor, F, A>
impl<'q, Repo, Flavor, F, A> Sync for EsQuery<'q, Repo, Flavor, F, A>
impl<'q, Repo, Flavor, F, A> Unpin for EsQuery<'q, Repo, Flavor, F, A>
impl<'q, Repo, Flavor, F, A> !UnwindSafe for EsQuery<'q, Repo, Flavor, F, A>
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
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>
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