#![forbid(unsafe_code)]
#![warn(missing_docs)]
#[cfg(all(feature = "opfs", not(target_arch = "wasm32")))]
compile_error!(
"feature `opfs` is wasm32-only (it is a browser filesystem); \
build it with --target wasm32-unknown-unknown"
);
#[cfg(not(target_arch = "wasm32"))]
pub mod auth;
#[cfg(not(target_arch = "wasm32"))]
mod cache;
mod clock;
#[cfg(not(target_arch = "wasm32"))]
pub mod datadir;
#[cfg(not(target_arch = "wasm32"))]
pub mod era5;
mod error;
pub mod format;
#[cfg(not(target_arch = "wasm32"))]
mod key;
#[cfg(not(target_arch = "wasm32"))]
pub mod manifest;
#[cfg(not(target_arch = "wasm32"))]
mod offline;
#[cfg(not(target_arch = "wasm32"))]
mod provider;
#[cfg(not(target_arch = "wasm32"))]
pub mod s3_config;
#[cfg(not(target_arch = "wasm32"))]
pub mod store;
#[cfg(all(test, not(target_arch = "wasm32")))]
mod test_env;
#[cfg(not(target_arch = "wasm32"))]
pub mod transport;
#[cfg(not(target_arch = "wasm32"))]
pub mod validate;
pub use error::{Error, Result};
pub use format::{
write_all_to_store, BloscProfile, CodecProfile, OutputSchema, WriteCoord, WriteVar,
ZstdProfile, BLOSC_CHECKPOINT, BLOSC_DIAGNOSTIC, ZSTD_WASM,
};
#[cfg(all(target_arch = "wasm32", feature = "opfs"))]
pub use format::{read_zarr_opfs_array, write_zarr_opfs, OpfsStore};
#[cfg(not(target_arch = "wasm32"))]
pub use cache::{Cache, CacheBuilder, CachedBlob, FetchRequest};
#[cfg(not(target_arch = "wasm32"))]
pub use datadir::{data_dir, default_data_dir, expand_datadir, DATADIR_ENV};
#[cfg(not(target_arch = "wasm32"))]
pub use format::{
write_zarr_v3, ArrayData, AxisSelect, Coord, DType, Ff10Reader, FormatRegistry, GeoTiffReader,
NativeDataset, NativeField, NetcdfReader, ParquetReader, Reader, Records, Selection,
ShapefileReader, ZarrReader,
};
#[cfg(all(feature = "object-store", not(target_arch = "wasm32")))]
pub use format::{
array_shape_object_store, read_store_options, read_zarr_object_store,
read_zarr_object_store_with_options, store_options_from_env, write_zarr_object_store,
write_zarr_object_store_with_options,
};
#[cfg(not(target_arch = "wasm32"))]
pub use key::{cache_key, cache_key_range, sha256_file, sha256_hex};
#[cfg(not(target_arch = "wasm32"))]
pub use manifest::{Manifest, MANIFEST_SCHEMA};
#[cfg(not(target_arch = "wasm32"))]
pub use offline::{is_offline, OFFLINE_ENV};
#[cfg(not(target_arch = "wasm32"))]
pub use provider::{DataSource, Provider, SourceTemporal, StoreAccess, Window, STORE_ACCESS_ENV};
#[cfg(not(target_arch = "wasm32"))]
pub use s3_config::{
bucket_options_from_env, options_for_bucket, options_for_url, parse_bucket_options,
stated_region, stated_signing, BUCKET_OPTIONS_ENV,
};
#[cfg(not(target_arch = "wasm32"))]
#[deprecated(
since = "0.1.2",
note = "renamed to `DataSource` (.esm 1.0.0 `data_sources`)"
)]
pub type DataLoader = DataSource;
#[cfg(not(target_arch = "wasm32"))]
#[deprecated(since = "0.1.2", note = "renamed to `SourceTemporal`")]
pub type LoaderTemporal = SourceTemporal;
#[cfg(not(target_arch = "wasm32"))]
pub use validate::{
file_source_is_current, file_source_state, CacheDecision, SourceRevalidator, SourceState,
Temporal, REVALIDATE_FILE_ENV,
};