streaming_common/
resource.rs1use std::collections::HashMap;
2
3#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
4pub struct TaskResourceInfo {
5 #[serde(default)]
7 pub task_id: String,
8 #[serde(default)]
9 pub task_manager_address: String,
10
11 #[serde(default)]
13 pub task_manager_id: String,
14 #[serde(default)]
15 pub resource_info: HashMap<String, String>,
16}
17
18impl TaskResourceInfo {
19 pub fn new(task_id: String, task_manager_address: String, task_manager_id: String) -> Self {
21 let mut resource_info = HashMap::new();
22 resource_info.insert("task_id".to_string(), task_id.clone());
23 resource_info.insert(
24 "task_manager_address".to_string(),
25 task_manager_address.clone(),
26 );
27
28 TaskResourceInfo {
29 task_id,
30 task_manager_address,
31 task_manager_id,
32 resource_info,
33 }
34 }
35
36 pub fn get_task_id(&self) -> &str {
37 self.resource_info
38 .get("task_id")
39 .map(|x| x.as_str())
40 .unwrap_or(self.task_id.as_str())
41 }
42
43 pub fn get_task_manager_address(&self) -> &str {
44 self.resource_info
45 .get("task_manager_address")
46 .map(|x| x.as_str())
47 .unwrap_or(self.task_manager_address.as_str())
48 }
49}