Skip to main content

ResolvedRepository

Struct ResolvedRepository 

Source
pub struct ResolvedRepository<'a, E> { /* private fields */ }

Implementations§

Source§

impl<'a, E> ResolvedRepository<'a, E>
where E: QueryExecutor + MutationExecutor + Send + Sync + 'static,

Source

pub async fn save_graph( &self, node: GraphNode, ) -> Result<GraphNode, RepositoryError<E::Error>>

Source

pub async fn save_entity_graph_from( &self, graph: EntityGraph, ) -> Result<GraphNode, RepositoryError<E::Error>>

Source

pub async fn save_entity_graph<T>( &self, entity: T, ) -> Result<GraphNode, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn save_entity<T>( &self, entity: T, status: EntityStatus, ) -> Result<GraphNode, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn save_entity_with_comment<T>( &self, entity: T, status: EntityStatus, comment: impl Into<String>, ) -> Result<GraphNode, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn save_entity_graph_with_comment<T>( &self, entity: T, comment: impl Into<String>, ) -> Result<GraphNode, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn create_entity_graph_with_comment<T>( &self, entity: T, comment: impl Into<String>, ) -> Result<GraphNode, RepositoryError<E::Error>>
where T: Entity,

Create a new entity graph with an annotation comment on the root node. This assumes all new nodes do not exist in the database, skipping existence checks and throwing an exception on primary key conflict.

Source

pub async fn plan_graph( &self, node: GraphNode, ) -> Result<GraphMutationPlan, RepositoryError<E::Error>>

Source

pub async fn execute_graph_plan( &self, plan: GraphMutationPlan, ) -> Result<GraphNode, RepositoryError<E::Error>>

Source

pub fn graph_node_from_entity<T>( &self, entity: T, ) -> Result<GraphNode, RuntimeError>
where T: Entity,

Source

pub async fn fetch_graph_current_row( &self, entity: &str, id_property: &str, id: &Value, trace_chain: Vec<TraceNode>, ) -> Result<Option<Record>, RepositoryError<E::Error>>

Source§

impl<'a, E> ResolvedRepository<'a, E>
where E: QueryExecutor + MutationExecutor + Send + Sync + 'static,

Source

pub fn relation_loads(&self) -> Vec<String>

Source

pub fn relation_plans(&self) -> Result<Vec<RelationLoadPlan>, RuntimeError>

Source

pub fn relation_query( &self, relation_name: &str, parent_rows: &[Record], ) -> Result<SelectQuery, RuntimeError>

Source

pub async fn enhance_relations( &self, parent_rows: &mut [Record], ) -> Result<(), RepositoryError<E::Error>>

Source

pub async fn enhance_query_relations( &self, parent_rows: &mut [Record], query: &SelectQuery, ) -> Result<(), RepositoryError<E::Error>>

Source

pub fn enhance_relation_aggregates<'b>( &'b self, parent_rows: &'b mut [Record], relation_aggregates: &'b [RelationAggregate], parent_cache_options: Option<AggregationCacheOptions>, parent_trace_chain: &'b [TraceNode], ) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError<E::Error>>> + Send + 'b>>

Source

pub fn enhance_object_group_bys<'b>( &'b self, rows: &'b mut [Record], object_group_bys: &'b [ObjectGroupBy], parent_trace_chain: &'b [TraceNode], ) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError<E::Error>>> + Send + 'b>>

Source

pub fn enhance_child_queries<'b>( &'b self, rows: &'b mut [Record], child_queries: &'b [SelectQuery], parent_trace_chain: &'b [TraceNode], ) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError<E::Error>>> + Send + 'b>>

Source§

impl<'a, E> ResolvedRepository<'a, E>
where E: QueryExecutor + MutationExecutor + Send + Sync + 'static,

Source

pub fn entity(&self) -> &str

Source

pub fn select(&self) -> SelectQuery

Source

pub fn insert_command(&self) -> InsertCommand

Source

pub fn prepare_insert_command( &self, command: &InsertCommand, ) -> Result<InsertCommand, RuntimeError>

Source

pub fn update_command(&self, id: impl Into<Value>) -> UpdateCommand

Source

pub fn prepare_update_command( &self, command: &UpdateCommand, ) -> Result<UpdateCommand, RuntimeError>

Source

pub fn delete_command(&self, id: impl Into<Value>) -> DeleteCommand

Source

pub fn recover_command( &self, id: impl Into<Value>, expected_version: i64, ) -> RecoverCommand

Source

pub async fn fetch_all( &self, query: &SelectQuery, ) -> Result<Vec<Record>, RepositoryError<E::Error>>

Source

pub async fn fetch_all_with_relation_aggregates( &self, query: &SelectQuery, relation_aggregates: &[RelationAggregate], ) -> Result<Vec<Record>, RepositoryError<E::Error>>

Source

pub async fn fetch_smart_list( &self, query: &SelectQuery, ) -> Result<SmartList<Record>, RepositoryError<E::Error>>

Source

pub async fn fetch_smart_list_with_relation_aggregates( &self, query: &SelectQuery, relation_aggregates: &[RelationAggregate], ) -> Result<SmartList<Record>, RepositoryError<E::Error>>

Source

pub async fn fetch_entities<T>( &self, query: &SelectQuery, ) -> Result<SmartList<T>, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn fetch_entities_with_relation_aggregates<T>( &self, query: &SelectQuery, relation_aggregates: &[RelationAggregate], ) -> Result<SmartList<T>, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn fetch_enhanced_entities_with_relation_aggregates<T>( &self, query: &SelectQuery, relation_aggregates: &[RelationAggregate], ) -> Result<SmartList<T>, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn fetch_enhanced_entities<T>( &self, query: &SelectQuery, ) -> Result<SmartList<T>, RepositoryError<E::Error>>
where T: Entity,

Source

pub async fn insert( &self, command: &InsertCommand, ) -> Result<u64, RepositoryError<E::Error>>

Source

pub async fn update( &self, command: &UpdateCommand, ) -> Result<u64, RepositoryError<E::Error>>

Source

pub async fn delete( &self, command: &DeleteCommand, ) -> Result<u64, RepositoryError<E::Error>>

Source

pub async fn delete_scoped( &self, command: &DeleteCommand, trace_chain: Vec<TraceNode>, ) -> Result<u64, RepositoryError<E::Error>>

Source

pub async fn recover( &self, command: &RecoverCommand, ) -> Result<u64, RepositoryError<E::Error>>

Source

pub fn scoped_repository(&self, entity: String) -> ResolvedRepository<'a, E>

Source§

impl<'a, E> ResolvedRepository<'a, E>

Source

pub fn with_trace_context(self, trace_context: Vec<TraceNode>) -> Self

Auto Trait Implementations§

§

impl<'a, E> !RefUnwindSafe for ResolvedRepository<'a, E>

§

impl<'a, E> !UnwindSafe for ResolvedRepository<'a, E>

§

impl<'a, E> Freeze for ResolvedRepository<'a, E>

§

impl<'a, E> Send for ResolvedRepository<'a, E>
where E: Sync,

§

impl<'a, E> Sync for ResolvedRepository<'a, E>
where E: Sync,

§

impl<'a, E> Unpin for ResolvedRepository<'a, E>

§

impl<'a, E> UnsafeUnpin for ResolvedRepository<'a, E>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.