use serde::{Deserialize, Serialize};
use super::array::ArrayLayoutSummary;
use super::tensor3d::Tensor3DPlaneStats;
use crate::results::ColumnarCommonFields;
use crate::results::MinimalFallback;
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ZarrArrayEntrySummary {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub zarr_array_metadata: Option<String>,
#[serde(flatten)]
pub layout: ArrayLayoutSummary,
#[serde(flatten)]
pub common: ColumnarCommonFields,
#[serde(skip_serializing_if = "Option::is_none")]
pub tensor3d: Option<Tensor3DPlaneStats>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_chunks: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entry_parse_error: Option<String>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct ZarrMetadata {
pub byte_count: usize,
#[serde(skip_serializing_if = "Option::is_none")]
pub root_group_metadata: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub array_entries_scanned: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub array_entries: Option<Vec<ZarrArrayEntrySummary>>,
}
impl MinimalFallback for ZarrMetadata {
fn minimal_fallback(file_size_bytes: usize) -> Self {
Self {
byte_count: file_size_bytes,
..Default::default()
}
}
}