Load code fixed
This commit is contained in:
1 parent
a01a29c492
commit
d8e3a5b6db
1 file changed
+32
-16
+32
-16
@@ -122,10 +122,10 @@ impl<T: EntityData + Clone, R: Repository<T, D>, D: DbLayer<T>> Query<T, R, D> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn load(&mut self, data_repository: DataRepositoryInner<T, D>) {
|
pub fn load(&mut self, data_repository: &DataRepositoryInner<T, D>) where T : Send + Sync {
|
||||||
self.cache.clear();
|
self.cache.clear();
|
||||||
if self.parallel {
|
if self.parallel {
|
||||||
let mut cache: Vec<EntityHandle<T>> = data_repository
|
self.cache = data_repository
|
||||||
.cache
|
.cache
|
||||||
.par_iter()
|
.par_iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
@@ -138,21 +138,37 @@ impl<T: EntityData + Clone, R: Repository<T, D>, D: DbLayer<T>> Query<T, R, D> {
|
|||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
cache.extend(
|
|
||||||
data_repository
|
|
||||||
.temporal
|
|
||||||
.iter()
|
|
||||||
.enumerate()
|
|
||||||
.filter(|(_, entity)| (self.rule)(entity))
|
|
||||||
.map(|(i, entity)| EntityHandle {
|
|
||||||
id: entity.id(),
|
|
||||||
real: false,
|
|
||||||
index: i as u32,
|
|
||||||
_phantom: PhantomData,
|
|
||||||
})
|
|
||||||
.collect::<Vec<_>>(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
self.cache = data_repository
|
||||||
|
.cache
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, entity)| (self.rule)(entity))
|
||||||
|
.map(|(i, entity)| EntityHandle {
|
||||||
|
id: entity.id(),
|
||||||
|
real: true,
|
||||||
|
index: i as u32,
|
||||||
|
_phantom: PhantomData,
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
self.cache.extend(
|
||||||
|
data_repository
|
||||||
|
.temporal
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, entity)| (self.rule)(entity))
|
||||||
|
.map(|(i, entity)| EntityHandle {
|
||||||
|
id: entity.id(),
|
||||||
|
real: false,
|
||||||
|
index: i as u32,
|
||||||
|
_phantom: PhantomData,
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user