use crate::config::MetadataConvertVersion;
use zarrs_codec::CodecMetadataOptions;
#[derive(Debug, Clone, Copy)]
pub struct ArrayMetadataOptions {
codec_metadata_options: CodecMetadataOptions,
convert_version: MetadataConvertVersion,
include_zarrs_metadata: bool,
convert_aliased_extension_names: bool,
}
impl Default for ArrayMetadataOptions {
fn default() -> Self {
Self {
codec_metadata_options: CodecMetadataOptions::default(),
convert_version: MetadataConvertVersion::Default,
include_zarrs_metadata: true,
convert_aliased_extension_names: false,
}
}
}
impl ArrayMetadataOptions {
#[must_use]
pub fn codec_metadata_options(&self) -> &CodecMetadataOptions {
&self.codec_metadata_options
}
#[must_use]
pub fn codec_metadata_options_mut(&mut self) -> &mut CodecMetadataOptions {
&mut self.codec_metadata_options
}
#[must_use]
pub fn with_codec_metadata_options(
mut self,
codec_metadata_options: CodecMetadataOptions,
) -> Self {
self.codec_metadata_options = codec_metadata_options;
self
}
pub fn set_codec_metadata_options(
&mut self,
codec_metadata_options: CodecMetadataOptions,
) -> &mut Self {
self.codec_metadata_options = codec_metadata_options;
self
}
#[must_use]
pub fn metadata_convert_version(&self) -> MetadataConvertVersion {
self.convert_version
}
#[must_use]
pub fn with_metadata_convert_version(
mut self,
convert_version: MetadataConvertVersion,
) -> Self {
self.convert_version = convert_version;
self
}
pub fn set_metadata_convert_version(
&mut self,
convert_version: MetadataConvertVersion,
) -> &mut Self {
self.convert_version = convert_version;
self
}
#[must_use]
pub fn include_zarrs_metadata(&self) -> bool {
self.include_zarrs_metadata
}
#[must_use]
pub fn with_include_zarrs_metadata(mut self, include_zarrs_metadata: bool) -> Self {
self.include_zarrs_metadata = include_zarrs_metadata;
self
}
pub fn set_include_zarrs_metadata(&mut self, include_zarrs_metadata: bool) -> &mut Self {
self.include_zarrs_metadata = include_zarrs_metadata;
self
}
#[must_use]
pub fn convert_aliased_extension_names(&self) -> bool {
self.convert_aliased_extension_names
}
#[must_use]
pub fn with_convert_aliased_extension_names(
mut self,
convert_aliased_extension_names: bool,
) -> Self {
self.convert_aliased_extension_names = convert_aliased_extension_names;
self
}
pub fn set_convert_aliased_extension_names(
&mut self,
convert_aliased_extension_names: bool,
) -> &mut Self {
self.convert_aliased_extension_names = convert_aliased_extension_names;
self
}
}