diff --git a/src/query/loader.rs b/src/query/loader.rs index 45a5abd6..0e75d5f8 100644 --- a/src/query/loader.rs +++ b/src/query/loader.rs @@ -32,8 +32,35 @@ pub trait LoaderTrait { #[async_trait] impl LoaderTrait for Vec where - M: ModelTrait, - Vec: Sync, + M: ModelTrait + Sync, +{ + type Model = M; + + async fn load_one(&self, stmt: Select, db: &C) -> Result>, DbErr> + where + C: ConnectionTrait, + R: EntityTrait, + R::Model: Send + Sync, + <::Model as ModelTrait>::Entity: Related, + { + self.as_slice().load_one(stmt, db).await + } + + async fn load_many(&self, stmt: Select, db: &C) -> Result>, DbErr> + where + C: ConnectionTrait, + R: EntityTrait, + R::Model: Send + Sync, + <::Model as ModelTrait>::Entity: Related, + { + self.as_slice().load_many(stmt, db).await + } +} + +#[async_trait] +impl LoaderTrait for &[M] +where + M: ModelTrait + Sync, { type Model = M;