use serde::{Deserialize, Serialize};
use crate::results::MinimalFallback;
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct OnnxOpsetEntry {
pub domain: String,
pub version: i64,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct OnnxStringPair {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct OnnxOpTypeCount {
pub op_type: String,
pub count: usize,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct OnnxValueSummary {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub type_summary: Option<String>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct OnnxMetadata {
pub byte_count: usize,
#[serde(skip_serializing_if = "Option::is_none")]
pub proto_parse_error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ir_version: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub producer_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub producer_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub domain: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub model_version: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub model_doc_string: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub opset_import: Option<Vec<OnnxOpsetEntry>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub model_metadata_props: Option<Vec<OnnxStringPair>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub training_info_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub functions_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub raw_node_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initializer_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sparse_initializer_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value_info_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_input_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_output_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_initializer_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub op_type_counts: Option<Vec<OnnxOpTypeCount>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_node_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_inputs: Option<Vec<OnnxValueSummary>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub graph_outputs: Option<Vec<OnnxValueSummary>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parse_error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parse_ok: Option<bool>,
}
impl MinimalFallback for OnnxMetadata {
fn minimal_fallback(file_size_bytes: usize) -> Self {
Self {
byte_count: file_size_bytes,
..Self::default()
}
}
}