task/manager/
relationships.rs1use alloc::vec::Vec;
4
5use super::*;
6
7impl Manager {
8 pub async fn get_children(
10 &self,
11 task_identifier: TaskIdentifier,
12 ) -> Result<Vec<TaskIdentifier>> {
13 Ok(self
14 .0
15 .read()
16 .await
17 .tasks
18 .iter()
19 .filter(|(_, metadata)| metadata.parent == task_identifier)
20 .map(|(identifier, _)| *identifier)
21 .collect())
22 }
23
24 pub async fn get_parent(&self, task_identifier: TaskIdentifier) -> Result<TaskIdentifier> {
26 Self::get_task(&*self.0.read().await, task_identifier).map(|task| task.parent)
27 }
28}