use crate::common;
use crate::tasks;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TaskInfoBase {
#[serde(
rename = "cancellation_time_millis",
default,
skip_serializing_if = "Option::is_none"
)]
pub cancellation_time_millis: Option<String>,
#[serde(rename = "action")]
pub action: String,
#[serde(
rename = "running_time",
default,
skip_serializing_if = "Option::is_none"
)]
pub running_time: Option<String>,
#[serde(rename = "cancelled", default, skip_serializing_if = "Option::is_none")]
pub cancelled: Option<bool>,
#[serde(rename = "cancellable")]
pub cancellable: bool,
#[serde(rename = "start_time_in_millis")]
pub start_time_in_millis: String,
#[serde(
rename = "description",
default,
skip_serializing_if = "Option::is_none"
)]
pub description: Option<String>,
#[serde(
rename = "parent_task_id",
default,
skip_serializing_if = "Option::is_none"
)]
pub parent_task_id: Option<String>,
#[serde(rename = "status", default, skip_serializing_if = "Option::is_none")]
pub status: Option<tasks::Status>,
#[serde(rename = "node")]
pub node: String,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "id")]
pub id: u32,
#[serde(rename = "headers")]
pub headers: serde_json::Value,
#[serde(
rename = "resource_stats",
default,
skip_serializing_if = "Option::is_none"
)]
pub resource_stats: Option<common::ResourceStats>,
#[serde(rename = "running_time_in_nanos")]
pub running_time_in_nanos: String,
}
impl TaskInfoBase {
pub fn new(
action: String,
cancellable: bool,
start_time_in_millis: String,
node: String,
r#type: String,
id: u32,
headers: serde_json::Value,
running_time_in_nanos: String,
) -> TaskInfoBase {
TaskInfoBase {
cancellation_time_millis: None,
action,
running_time: None,
cancelled: None,
cancellable,
start_time_in_millis,
description: None,
parent_task_id: None,
status: None,
node,
r#type,
id,
headers,
resource_stats: None,
running_time_in_nanos,
}
}
}