diff --git a/CHANGELOG.md b/CHANGELOG.md index 080a6722..bb851450 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + - Fixed build with `bitround` or `zfp` features without `async` feature + ## [0.11.0] - 2024-01-26 ### Highlights diff --git a/Cargo.toml b/Cargo.toml index 319142d0..ff8e6c97 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zarrs" -version = "0.11.0" +version = "0.11.1" authors = ["Lachlan Deakin "] edition = "2021" rust-version = "1.71" diff --git a/src/array/codec.rs b/src/array/codec.rs index 79c27c82..3021cd43 100644 --- a/src/array/codec.rs +++ b/src/array/codec.rs @@ -309,7 +309,7 @@ pub trait BytesPartialDecoderTraits: Send + Sync { #[cfg(feature = "async")] /// Asynchronous partial bytes decoder traits. -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] pub trait AsyncBytesPartialDecoderTraits: Send + Sync { /// Partially decode bytes with optional parallelism. /// @@ -424,7 +424,7 @@ pub trait ArrayPartialDecoderTraits: Send + Sync { #[cfg(feature = "async")] /// Asynchronous partial array decoder traits. -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] pub trait AsyncArrayPartialDecoderTraits: Send + Sync { /// Partially decode an array. /// @@ -507,7 +507,7 @@ impl<'a> AsyncStoragePartialDecoder<'a> { } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncBytesPartialDecoderTraits for AsyncStoragePartialDecoder<'_> { async fn partial_decode_opt( &self, diff --git a/src/array/codec/array_to_array/bitround/bitround_codec.rs b/src/array/codec/array_to_array/bitround/bitround_codec.rs index ac2c1972..057b0f03 100644 --- a/src/array/codec/array_to_array/bitround/bitround_codec.rs +++ b/src/array/codec/array_to_array/bitround/bitround_codec.rs @@ -1,14 +1,17 @@ use crate::{ array::{ codec::{ - ArrayCodecTraits, ArrayPartialDecoderTraits, ArrayToArrayCodecTraits, - AsyncArrayPartialDecoderTraits, CodecError, CodecTraits, + ArrayCodecTraits, ArrayPartialDecoderTraits, ArrayToArrayCodecTraits, CodecError, + CodecTraits, }, ChunkRepresentation, DataType, }, metadata::Metadata, }; +#[cfg(feature = "async")] +use crate::array::codec::AsyncArrayPartialDecoderTraits; + use super::{bitround_partial_decoder, round_bytes, BitroundCodecConfiguration, IDENTIFIER}; /// A `bitround` codec implementation. @@ -98,6 +101,7 @@ impl ArrayToArrayCodecTraits for BitroundCodec { )) } + #[cfg(feature = "async")] async fn async_partial_decoder_opt<'a>( &'a self, input_handle: Box, diff --git a/src/array/codec/array_to_array/bitround/bitround_partial_decoder.rs b/src/array/codec/array_to_array/bitround/bitround_partial_decoder.rs index 70a02ba7..c07fa290 100644 --- a/src/array/codec/array_to_array/bitround/bitround_partial_decoder.rs +++ b/src/array/codec/array_to_array/bitround/bitround_partial_decoder.rs @@ -1,11 +1,14 @@ use crate::{ array::{ - codec::{ArrayPartialDecoderTraits, AsyncArrayPartialDecoderTraits, CodecError}, + codec::{ArrayPartialDecoderTraits, CodecError}, DataType, }, array_subset::ArraySubset, }; +#[cfg(feature = "async")] +use crate::array::codec::AsyncArrayPartialDecoderTraits; + use super::{round_bytes, IDENTIFIER}; /// Partial decoder for the `bitround` codec. @@ -65,6 +68,7 @@ impl ArrayPartialDecoderTraits for BitroundPartialDecoder<'_> { } } +#[cfg(feature = "async")] /// Asynchronous partial decoder for the `bitround` codec. pub struct AsyncBitroundPartialDecoder<'a> { input_handle: Box, @@ -72,6 +76,7 @@ pub struct AsyncBitroundPartialDecoder<'a> { keepbits: u32, } +#[cfg(feature = "async")] impl<'a> AsyncBitroundPartialDecoder<'a> { /// Create a new partial decoder for the `bitround` codec. pub fn new( @@ -104,7 +109,8 @@ impl<'a> AsyncBitroundPartialDecoder<'a> { } } -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[cfg(feature = "async")] +#[async_trait::async_trait] impl AsyncArrayPartialDecoderTraits for AsyncBitroundPartialDecoder<'_> { async fn partial_decode_opt( &self, diff --git a/src/array/codec/array_to_bytes/bytes/bytes_partial_decoder.rs b/src/array/codec/array_to_bytes/bytes/bytes_partial_decoder.rs index 2d811a97..ac93fbd0 100644 --- a/src/array/codec/array_to_bytes/bytes/bytes_partial_decoder.rs +++ b/src/array/codec/array_to_bytes/bytes/bytes_partial_decoder.rs @@ -105,7 +105,7 @@ impl<'a> AsyncBytesPartialDecoder<'a> { } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncArrayPartialDecoderTraits for AsyncBytesPartialDecoder<'_> { async fn partial_decode_opt( &self, diff --git a/src/array/codec/array_to_bytes/zfp/zfp_codec.rs b/src/array/codec/array_to_bytes/zfp/zfp_codec.rs index a047eae7..de222a2d 100644 --- a/src/array/codec/array_to_bytes/zfp/zfp_codec.rs +++ b/src/array/codec/array_to_bytes/zfp/zfp_codec.rs @@ -7,7 +7,6 @@ use crate::{ array::{ codec::{ ArrayCodecTraits, ArrayPartialDecoderTraits, ArrayToBytesCodecTraits, - AsyncArrayPartialDecoderTraits, AsyncBytesPartialDecoderTraits, BytesPartialDecoderTraits, Codec, CodecError, CodecPlugin, CodecTraits, }, BytesRepresentation, ChunkRepresentation, DataType, @@ -16,6 +15,9 @@ use crate::{ plugin::{PluginCreateError, PluginMetadataInvalidError}, }; +#[cfg(feature = "async")] +use crate::array::codec::{AsyncArrayPartialDecoderTraits, AsyncBytesPartialDecoderTraits}; + use super::{ zarr_data_type_to_zfp_data_type, zfp_bitstream::ZfpBitstream, @@ -233,6 +235,7 @@ impl ArrayToBytesCodecTraits for ZfpCodec { )?)) } + #[cfg(feature = "async")] async fn async_partial_decoder_opt<'a>( &'a self, input_handle: Box, diff --git a/src/array/codec/array_to_bytes/zfp/zfp_partial_decoder.rs b/src/array/codec/array_to_bytes/zfp/zfp_partial_decoder.rs index 09df457a..7d0028f2 100644 --- a/src/array/codec/array_to_bytes/zfp/zfp_partial_decoder.rs +++ b/src/array/codec/array_to_bytes/zfp/zfp_partial_decoder.rs @@ -3,16 +3,16 @@ use zfp_sys::zfp_type; use crate::{ array::{ chunk_shape_to_array_shape, - codec::{ - ArrayPartialDecoderTraits, AsyncArrayPartialDecoderTraits, - AsyncBytesPartialDecoderTraits, BytesPartialDecoderTraits, CodecError, - }, + codec::{ArrayPartialDecoderTraits, BytesPartialDecoderTraits, CodecError}, ChunkRepresentation, }, array_subset::ArraySubset, byte_range::extract_byte_ranges, }; +#[cfg(feature = "async")] +use crate::array::codec::{AsyncArrayPartialDecoderTraits, AsyncBytesPartialDecoderTraits}; + use super::{zarr_data_type_to_zfp_data_type, zfp_decode, ZfpMode}; /// Partial decoder for the `zfp` codec. @@ -92,6 +92,7 @@ impl ArrayPartialDecoderTraits for ZfpPartialDecoder<'_> { } } +#[cfg(feature = "async")] /// Asynchronous partial decoder for the `zfp` codec. pub struct AsyncZfpPartialDecoder<'a> { input_handle: Box, @@ -100,6 +101,7 @@ pub struct AsyncZfpPartialDecoder<'a> { zfp_type: zfp_type, } +#[cfg(feature = "async")] impl<'a> AsyncZfpPartialDecoder<'a> { /// Create a new partial decoder for the `zfp` codec. pub fn new( @@ -125,7 +127,8 @@ impl<'a> AsyncZfpPartialDecoder<'a> { } } -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[cfg(feature = "async")] +#[async_trait::async_trait] impl AsyncArrayPartialDecoderTraits for AsyncZfpPartialDecoder<'_> { async fn partial_decode_opt( &self, diff --git a/src/array/codec/byte_interval_partial_decoder.rs b/src/array/codec/byte_interval_partial_decoder.rs index 3ace1310..4d9d07e1 100644 --- a/src/array/codec/byte_interval_partial_decoder.rs +++ b/src/array/codec/byte_interval_partial_decoder.rs @@ -84,7 +84,7 @@ impl<'a> AsyncByteIntervalPartialDecoder<'a> { } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl<'a> AsyncBytesPartialDecoderTraits for AsyncByteIntervalPartialDecoder<'a> { async fn partial_decode_opt( &self, diff --git a/src/array/codec/partial_decoder_cache.rs b/src/array/codec/partial_decoder_cache.rs index be6f3bd2..6a40ac2e 100644 --- a/src/array/codec/partial_decoder_cache.rs +++ b/src/array/codec/partial_decoder_cache.rs @@ -74,7 +74,7 @@ impl BytesPartialDecoderTraits for BytesPartialDecoderCache<'_> { } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncBytesPartialDecoderTraits for BytesPartialDecoderCache<'_> { async fn partial_decode_opt( &self, @@ -165,7 +165,7 @@ impl<'a> ArrayPartialDecoderTraits for ArrayPartialDecoderCache<'a> { } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl<'a> AsyncArrayPartialDecoderTraits for ArrayPartialDecoderCache<'a> { async fn partial_decode_opt( &self, diff --git a/src/storage/storage_handle.rs b/src/storage/storage_handle.rs index e20e78c6..dc4a928d 100644 --- a/src/storage/storage_handle.rs +++ b/src/storage/storage_handle.rs @@ -117,7 +117,7 @@ impl ReadableWritableStorageTr } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableStorageTraits for StorageHandle<'_, TStorage> { @@ -154,7 +154,7 @@ impl AsyncReadableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncListableStorageTraits for StorageHandle<'_, TStorage> { @@ -178,7 +178,7 @@ impl AsyncListableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncWritableStorageTraits for StorageHandle<'_, TStorage> { @@ -207,7 +207,7 @@ impl AsyncWritableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableWritableStorageTraits for StorageHandle<'_, TStorage> { diff --git a/src/storage/storage_transformer/performance_metrics.rs b/src/storage/storage_transformer/performance_metrics.rs index 7866e25e..458d7b5d 100644 --- a/src/storage/storage_transformer/performance_metrics.rs +++ b/src/storage/storage_transformer/performance_metrics.rs @@ -296,7 +296,7 @@ impl ReadableWritableStorageTr } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableStorageTraits for PerformanceMetricsStorageTransformerImpl<'_, TStorage> { @@ -365,7 +365,7 @@ impl AsyncReadableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncListableStorageTraits for PerformanceMetricsStorageTransformerImpl<'_, TStorage> { @@ -383,7 +383,7 @@ impl AsyncListableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncWritableStorageTraits for PerformanceMetricsStorageTransformerImpl<'_, TStorage> { @@ -426,7 +426,7 @@ impl AsyncWritableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableWritableStorageTraits for PerformanceMetricsStorageTransformerImpl<'_, TStorage> { diff --git a/src/storage/storage_transformer/usage_log.rs b/src/storage/storage_transformer/usage_log.rs index b60313c0..76f75835 100644 --- a/src/storage/storage_transformer/usage_log.rs +++ b/src/storage/storage_transformer/usage_log.rs @@ -375,7 +375,7 @@ impl ReadableWritableStorageTr } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableStorageTraits for UsageLogStorageTransformerImpl { @@ -461,7 +461,7 @@ impl AsyncReadableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncListableStorageTraits for UsageLogStorageTransformerImpl { @@ -509,7 +509,7 @@ impl AsyncListableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncWritableStorageTraits for UsageLogStorageTransformerImpl { @@ -570,7 +570,7 @@ impl AsyncWritableStorageTraits } #[cfg(feature = "async")] -#[cfg_attr(feature = "async", async_trait::async_trait)] +#[async_trait::async_trait] impl AsyncReadableWritableStorageTraits for UsageLogStorageTransformerImpl {