diff --git a/src/query/entity_object_relation.rs b/src/query/entity_object_relation.rs index a1bde8b4..a813c1da 100644 --- a/src/query/entity_object_relation.rs +++ b/src/query/entity_object_relation.rs @@ -9,7 +9,7 @@ use sea_orm::{EntityTrait, Iden, ModelTrait, RelationDef}; use crate::{ apply_memory_pagination, get_filter_conditions, BuilderContext, Connection, ConnectionObjectBuilder, EntityObjectBuilder, FilterInputBuilder, GuardAction, - HashAbleGroupKey, KeyComplex, OneToManyLoader, OneToOneLoader, OrderInputBuilder, + HashableGroupKey, KeyComplex, OneToManyLoader, OneToOneLoader, OrderInputBuilder, PaginationInputBuilder, }; @@ -91,7 +91,7 @@ impl EntityObjectRelationBuilder { let order_by = OrderInputBuilder { context }.parse_object::(order_by); let key = KeyComplex:: { key: vec![parent.get(from_col)], - meta: HashAbleGroupKey:: { + meta: HashableGroupKey:: { stmt, columns: vec![to_col], filters: Some(filters), @@ -145,7 +145,7 @@ impl EntityObjectRelationBuilder { let order_by = OrderInputBuilder { context }.parse_object::(order_by); let key = KeyComplex:: { key: vec![parent.get(from_col)], - meta: HashAbleGroupKey:: { + meta: HashableGroupKey:: { stmt, columns: vec![to_col], filters: Some(filters), diff --git a/src/query/entity_object_via_relation.rs b/src/query/entity_object_via_relation.rs index 51cc213a..f8deca36 100644 --- a/src/query/entity_object_via_relation.rs +++ b/src/query/entity_object_via_relation.rs @@ -11,7 +11,7 @@ use sea_orm::{ use crate::{ apply_memory_pagination, apply_order, apply_pagination, get_filter_conditions, BuilderContext, ConnectionObjectBuilder, EntityObjectBuilder, FilterInputBuilder, GuardAction, - HashAbleGroupKey, KeyComplex, OneToManyLoader, OneToOneLoader, OrderInputBuilder, + HashableGroupKey, KeyComplex, OneToManyLoader, OneToOneLoader, OrderInputBuilder, PaginationInputBuilder, }; @@ -105,7 +105,7 @@ impl EntityObjectViaRelationBuilder { let order_by = OrderInputBuilder { context }.parse_object::(order_by); let key = KeyComplex:: { key: vec![parent.get(from_col)], - meta: HashAbleGroupKey:: { + meta: HashableGroupKey:: { stmt, columns: vec![to_col], filters: Some(filters), @@ -181,7 +181,7 @@ impl EntityObjectViaRelationBuilder { let key = KeyComplex:: { key: vec![parent.get(from_col)], - meta: HashAbleGroupKey:: { + meta: HashableGroupKey:: { stmt, columns: vec![to_col], filters: Some(filters), diff --git a/src/query/loader.rs b/src/query/loader.rs index a546f0e7..b70d199d 100644 --- a/src/query/loader.rs +++ b/src/query/loader.rs @@ -11,7 +11,7 @@ where /// The key tuple to equal with columns pub key: Vec, /// Meta Information - pub meta: HashAbleGroupKey, + pub meta: HashableGroupKey, } impl PartialEq for KeyComplex @@ -36,7 +36,7 @@ where } #[derive(Clone)] -pub struct HashAbleGroupKey +pub struct HashableGroupKey where T: sea_orm::EntityTrait, { @@ -50,7 +50,7 @@ where pub order_by: Vec<(T::Column, sea_orm::sea_query::Order)>, } -impl PartialEq for HashAbleGroupKey +impl PartialEq for HashableGroupKey where T: sea_orm::EntityTrait, { @@ -61,9 +61,9 @@ where } } -impl Eq for HashAbleGroupKey where T: sea_orm::EntityTrait {} +impl Eq for HashableGroupKey where T: sea_orm::EntityTrait {} -impl Hash for HashAbleGroupKey +impl Hash for HashableGroupKey where T: sea_orm::EntityTrait, { @@ -75,11 +75,11 @@ where } #[derive(Clone, Debug)] -pub struct HashAbleColumn(T::Column) +pub struct HashableColumn(T::Column) where T: sea_orm::EntityTrait; -impl PartialEq for HashAbleColumn +impl PartialEq for HashableColumn where T: sea_orm::EntityTrait, { @@ -88,9 +88,9 @@ where } } -impl Eq for HashAbleColumn where T: sea_orm::EntityTrait {} +impl Eq for HashableColumn where T: sea_orm::EntityTrait {} -impl Hash for HashAbleColumn +impl Hash for HashableColumn where T: sea_orm::EntityTrait, { @@ -133,12 +133,12 @@ where &self, keys: &[KeyComplex], ) -> Result, Self::Value>, Self::Error> { - let items: HashMap, Vec>> = keys + let items: HashMap, Vec>> = keys .iter() .cloned() .map(|item: KeyComplex| { ( - HashAbleGroupKey { + HashableGroupKey { stmt: item.meta.stmt, columns: item.meta.columns, filters: item.meta.filters, @@ -148,9 +148,9 @@ where ) }) .fold( - HashMap::, Vec>>::new(), - |mut acc: HashMap, Vec>>, - cur: (HashAbleGroupKey, Vec)| { + HashMap::, Vec>>::new(), + |mut acc: HashMap, Vec>>, + cur: (HashableGroupKey, Vec)| { match acc.get_mut(&cur.0) { Some(items) => { items.push(cur.1); @@ -164,10 +164,10 @@ where }, ); - let promises: HashMap, _> = items + let promises: HashMap, _> = items .into_iter() .map( - |(key, values): (HashAbleGroupKey, Vec>)| { + |(key, values): (HashableGroupKey, Vec>)| { let cloned_key = key.clone(); let stmt = key.stmt; @@ -194,7 +194,7 @@ where let mut results: HashMap, Vec> = HashMap::new(); for (key, promise) in promises.into_iter() { - let key = key as HashAbleGroupKey; + let key = key as HashableGroupKey; let result: Vec = promise.await.map_err(Arc::new)?; for item in result.into_iter() { let key = &KeyComplex:: { @@ -254,12 +254,12 @@ where &self, keys: &[KeyComplex], ) -> Result, Self::Value>, Self::Error> { - let items: HashMap, Vec>> = keys + let items: HashMap, Vec>> = keys .iter() .cloned() .map(|item: KeyComplex| { ( - HashAbleGroupKey { + HashableGroupKey { stmt: item.meta.stmt, columns: item.meta.columns, filters: item.meta.filters, @@ -269,9 +269,9 @@ where ) }) .fold( - HashMap::, Vec>>::new(), - |mut acc: HashMap, Vec>>, - cur: (HashAbleGroupKey, Vec)| { + HashMap::, Vec>>::new(), + |mut acc: HashMap, Vec>>, + cur: (HashableGroupKey, Vec)| { match acc.get_mut(&cur.0) { Some(items) => { items.push(cur.1); @@ -285,10 +285,10 @@ where }, ); - let promises: HashMap, _> = items + let promises: HashMap, _> = items .into_iter() .map( - |(key, values): (HashAbleGroupKey, Vec>)| { + |(key, values): (HashableGroupKey, Vec>)| { let cloned_key = key.clone(); let stmt = key.stmt; @@ -315,7 +315,7 @@ where let mut results: HashMap, T::Model> = HashMap::new(); for (key, promise) in promises.into_iter() { - let key = key as HashAbleGroupKey; + let key = key as HashableGroupKey; let result: Vec = promise.await.map_err(Arc::new)?; for item in result.into_iter() { let key = &KeyComplex:: {