use std::num::NonZeroU64;
use derive_more::Display;
use serde::{Deserialize, Serialize};
use zarrs_metadata::{ChunkShape, ConfigurationSerialize};
#[derive(Serialize, Deserialize, Clone, Eq, PartialEq, Debug, Display)]
#[serde(deny_unknown_fields)]
#[display("{}", serde_json::to_string(self).unwrap_or_default())]
pub struct RectangularChunkGridConfiguration {
pub chunk_shape: Vec<RectangularChunkGridDimensionConfiguration>,
}
impl ConfigurationSerialize for RectangularChunkGridConfiguration {}
#[derive(Serialize, Deserialize, Clone, Eq, PartialEq, Debug, derive_more::From)]
#[serde(untagged)]
pub enum RectangularChunkGridDimensionConfiguration {
Fixed(NonZeroU64),
Varying(ChunkShape),
}