pub struct OptionalDataType(/* private fields */);Expand description
The optional data type.
This wraps the inner DataType and provides methods specific to optional types,
such as checking if a fill value represents null and extracting inner fill value bytes.
Use the explicit accessor methods (e.g., inner(), data_type())
to access the wrapped data type’s properties.
Implementations§
Source§impl OptionalDataType
impl OptionalDataType
Sourcepub fn new(inner: DataType) -> OptionalDataType
pub fn new(inner: DataType) -> OptionalDataType
Create a new optional data type wrapper.
Sourcepub fn is_fill_value_null(&self, fill_value: &FillValue) -> bool
pub fn is_fill_value_null(&self, fill_value: &FillValue) -> bool
Check if the fill value represents null (last byte is 0x00).
Sourcepub fn fill_value_inner_bytes<'a>(&self, fill_value: &'a FillValue) -> &'a [u8] ⓘ
pub fn fill_value_inner_bytes<'a>(&self, fill_value: &'a FillValue) -> &'a [u8] ⓘ
Get the inner fill value bytes (without optional suffix).
For optional data types, returns all bytes except the last suffix byte.
Sourcepub fn configuration(&self, version: ZarrVersion) -> Configuration
pub fn configuration(&self, version: ZarrVersion) -> Configuration
Returns the configuration for this optional data type.
Source§impl OptionalDataType
impl OptionalDataType
Sourcepub fn into_inner(self) -> DataType
pub fn into_inner(self) -> DataType
Returns the inner data type, consuming self.
Sourcepub fn inner_size(&self) -> DataTypeSize
pub fn inner_size(&self) -> DataTypeSize
The size of the inner data type.
Sourcepub fn fixed_size(&self) -> Option<usize>
pub fn fixed_size(&self) -> Option<usize>
Returns the fixed size of the inner data type if it’s fixed size.
Sourcepub fn fill_value_from_metadata(
&self,
fill_value: &FillValueMetadataV3,
version: ZarrVersion,
) -> Result<FillValue, DataTypeFillValueMetadataError>
pub fn fill_value_from_metadata( &self, fill_value: &FillValueMetadataV3, version: ZarrVersion, ) -> Result<FillValue, DataTypeFillValueMetadataError>
Create a fill value from metadata for the inner data type.
§Errors
Returns DataTypeFillValueMetadataError if the fill value is incompatible with the inner data type.
Trait Implementations§
Source§impl Clone for OptionalDataType
impl Clone for OptionalDataType
Source§fn clone(&self) -> OptionalDataType
fn clone(&self) -> OptionalDataType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl DataTypeTraits for OptionalDataType
impl DataTypeTraits for OptionalDataType
Source§fn configuration(&self, version: ZarrVersion) -> Configuration
fn configuration(&self, version: ZarrVersion) -> Configuration
Source§fn size(&self) -> DataTypeSize
fn size(&self) -> DataTypeSize
Source§fn fill_value(
&self,
fill_value_metadata: &FillValueMetadataV3,
version: ZarrVersion,
) -> Result<FillValue, DataTypeFillValueMetadataError>
fn fill_value( &self, fill_value_metadata: &FillValueMetadataV3, version: ZarrVersion, ) -> Result<FillValue, DataTypeFillValueMetadataError>
Source§fn metadata_fill_value(
&self,
fill_value: &FillValue,
) -> Result<FillValueMetadataV3, DataTypeFillValueError>
fn metadata_fill_value( &self, fill_value: &FillValue, ) -> Result<FillValueMetadataV3, DataTypeFillValueError>
Source§fn configuration_v3(&self) -> Configuration
fn configuration_v3(&self) -> Configuration
Source§fn configuration_v2(&self) -> Configuration
fn configuration_v2(&self) -> Configuration
Source§fn fill_value_v2(
&self,
fill_value_metadata: &FillValueMetadataV3,
) -> Result<FillValue, DataTypeFillValueMetadataError>
fn fill_value_v2( &self, fill_value_metadata: &FillValueMetadataV3, ) -> Result<FillValue, DataTypeFillValueMetadataError>
Source§fn fill_value_v3(
&self,
fill_value_metadata: &FillValueMetadataV3,
) -> Result<FillValue, DataTypeFillValueMetadataError>
fn fill_value_v3( &self, fill_value_metadata: &FillValueMetadataV3, ) -> Result<FillValue, DataTypeFillValueMetadataError>
Source§fn eq(&self, other: &dyn DataTypeTraits) -> bool
fn eq(&self, other: &dyn DataTypeTraits) -> bool
Source§fn compatible_element_types(&self) -> &'static [TypeId]
fn compatible_element_types(&self) -> &'static [TypeId]
Source§impl DataTypeTraitsV3 for OptionalDataType
impl DataTypeTraitsV3 for OptionalDataType
Source§fn create(metadata: &MetadataV3) -> Result<DataType, PluginCreateError>
fn create(metadata: &MetadataV3) -> Result<DataType, PluginCreateError>
Source§impl Debug for OptionalDataType
impl Debug for OptionalDataType
Source§impl ExtensionAliases<ZarrVersion2> for OptionalDataType
impl ExtensionAliases<ZarrVersion2> for OptionalDataType
Source§fn aliases() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
fn aliases() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
Source§fn aliases_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
fn aliases_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
Source§impl ExtensionAliases<ZarrVersion3> for OptionalDataType
impl ExtensionAliases<ZarrVersion3> for OptionalDataType
Source§fn aliases() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
fn aliases() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
Source§fn aliases_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
fn aliases_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
Source§impl ExtensionNameStatic for OptionalDataType
impl ExtensionNameStatic for OptionalDataType
Source§const DEFAULT_NAME_FN: fn(ZarrVersion) -> Option<Cow<'static, str>>
const DEFAULT_NAME_FN: fn(ZarrVersion) -> Option<Cow<'static, str>>
Source§impl PartialEq for OptionalDataType
impl PartialEq for OptionalDataType
impl Eq for OptionalDataType
Auto Trait Implementations§
impl Freeze for OptionalDataType
impl Send for OptionalDataType
impl Sync for OptionalDataType
impl !RefUnwindSafe for OptionalDataType
impl Unpin for OptionalDataType
impl !UnwindSafe for OptionalDataType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> ExtensionAliasesV2 for Twhere
T: ExtensionAliases<ZarrVersion2>,
impl<T> ExtensionAliasesV2 for Twhere
T: ExtensionAliases<ZarrVersion2>,
Source§fn aliases_v2() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
fn aliases_v2() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
Source§fn aliases_v2_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
fn aliases_v2_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
Source§fn matches_name_v2(name: &str) -> bool
fn matches_name_v2(name: &str) -> bool
Source§impl<T> ExtensionAliasesV3 for Twhere
T: ExtensionAliases<ZarrVersion3>,
impl<T> ExtensionAliasesV3 for Twhere
T: ExtensionAliases<ZarrVersion3>,
Source§fn aliases_v3() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
fn aliases_v3() -> RwLockReadGuard<'static, ExtensionAliasesConfig>
Source§fn aliases_v3_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
fn aliases_v3_mut() -> RwLockWriteGuard<'static, ExtensionAliasesConfig>
Source§fn matches_name_v3(name: &str) -> bool
fn matches_name_v3(name: &str) -> bool
Source§impl<T> ExtensionName for Twhere
T: ExtensionNameStatic,
impl<T> ExtensionName for Twhere
T: ExtensionNameStatic,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more