Add more enum-iterator related stuff

This commit is contained in:
Kerollmops 2022-10-18 11:02:46 +02:00 committed by Clément Renault
parent 591527a99d
commit b2c5bc67b7
No known key found for this signature in database
GPG key ID: 92ADA4E935E71FA4
7 changed files with 17 additions and 22 deletions

View file

@ -2,24 +2,18 @@
use meilisearch_types::heed::{types::DecodeIgnore, RoTxn, RwTxn};
use meilisearch_types::milli::BEU32;
use roaring::RoaringBitmap;
use roaring::{MultiOps, RoaringBitmap};
use crate::{Error, IndexScheduler, Result, Task, TaskId};
use meilisearch_types::tasks::{Kind, Status};
impl IndexScheduler {
pub(crate) fn all_task_ids(&self, rtxn: &RoTxn) -> Result<RoaringBitmap> {
let mut all_tasks = RoaringBitmap::new();
for status in [
Status::Enqueued,
Status::Processing,
Status::Succeeded,
Status::Failed,
] {
all_tasks |= self.get_status(&rtxn, status)?;
}
Ok(all_tasks)
enum_iterator::all()
.map(|s| self.get_status(&rtxn, s))
.r#union()
}
pub(crate) fn last_task_id(&self, rtxn: &RoTxn) -> Result<Option<TaskId>> {
Ok(self
.all_tasks