use serde::{Deserialize, Serialize};
use crate::results::MinimalFallback;
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct PickleMetadata {
pub byte_count: usize,
#[serde(skip_serializing_if = "Option::is_none")]
pub protocol: Option<u8>,
pub encoding: String,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub protocols_seen: Vec<u8>,
pub frame_count: usize,
pub frame_bytes_total: u64,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub referenced_globals: Vec<String>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub builtin_types: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_hint: Option<String>,
pub scan_truncated: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub scan_error: Option<String>,
}
impl MinimalFallback for PickleMetadata {
fn minimal_fallback(file_size_bytes: usize) -> Self {
Self {
byte_count: file_size_bytes,
..Self::default()
}
}
}