use crate::records::build_queue_item::BuildQueueItem;
use alloc::boxed::Box;
use alloc::vec::Vec;
use std::sync::{Condvar, Mutex};
pub type Task = Box<dyn FnOnce() + Send>;
pub struct BuildQueueWorkState {
pub execute_task_deprecated: Option<Box<dyn Fn(Task) + Send + Sync>>,
pub execute_tasks: Option<Box<dyn Fn(Vec<Task>) + Send + Sync>>,
pub build_queue_items: Vec<BuildQueueItem>,
pub mtx: Mutex<()>,
pub cv: Condvar,
pub ready_queue_items: Vec<usize>,
pub processing: usize,
pub remaining: usize,
}