provenant/output_schema/
header.rs1use serde::{Deserialize, Serialize};
5use serde_json::{Map, Value};
6
7use super::extra_data::OutputExtraData;
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
10pub struct OutputHeader {
11 pub tool_name: String,
12 pub tool_version: String,
13 pub options: Map<String, Value>,
14 pub notice: String,
15 pub start_timestamp: String,
16 pub end_timestamp: String,
17 pub output_format_version: String,
18 pub duration: f64,
19 pub errors: Vec<String>,
20 pub warnings: Vec<String>,
21 pub extra_data: OutputExtraData,
22}
23
24impl From<&crate::models::Header> for OutputHeader {
25 fn from(value: &crate::models::Header) -> Self {
26 Self {
27 tool_name: value.tool_name.clone(),
28 tool_version: value.tool_version.clone(),
29 options: value.options.clone(),
30 notice: value.notice.clone(),
31 start_timestamp: value.start_timestamp.clone(),
32 end_timestamp: value.end_timestamp.clone(),
33 output_format_version: value.output_format_version.clone(),
34 duration: value.duration,
35 errors: value.errors.clone(),
36 warnings: value.warnings.clone(),
37 extra_data: OutputExtraData::from(&value.extra_data),
38 }
39 }
40}