adapter.rs 363 B

123456789101112
  1. use super::{Task, TaskId};
  2. use alloc::sync::Arc;
  3. use intrusive_collections::{intrusive_adapter, KeyAdapter, RBTreeAtomicLink};
  4. intrusive_adapter!(pub TaskAdapter = Arc<Task>: Task { link_task_list: RBTreeAtomicLink });
  5. impl<'a> KeyAdapter<'a> for TaskAdapter {
  6. type Key = TaskId;
  7. fn get_key(&self, task: &'a Task) -> Self::Key {
  8. task.id
  9. }
  10. }