lightswitch_metadata/
task_metadata.rs1use crate::taskname::TaskName;
2use crate::types::{MetadataLabel, TaskKey, TaskMetadataProvider, TaskMetadataProviderError};
3
4pub struct TaskMetadata {}
5
6impl TaskMetadataProvider for TaskMetadata {
7 fn get_metadata(
8 &self,
9 task_key: TaskKey,
10 ) -> Result<Vec<MetadataLabel>, TaskMetadataProviderError> {
11 let task_name = TaskName::for_task(task_key.tid).unwrap_or(TaskName::errored());
12 let pid = task_key.pid;
13 Ok(vec![
14 MetadataLabel::from_number_value("pid".into(), task_key.tid.into(), "task-id".into()),
15 MetadataLabel::from_string_value("thread.name".into(), task_name.current_thread),
16 MetadataLabel::from_string_value("process.name".into(), task_name.main_thread),
17 MetadataLabel::from_number_value("pid".into(), pid.into(), "task-tgid".into()),
18 ])
19 }
20}