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