1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//! `OxiGDAL` Core - Pure Rust Geospatial Abstractions
//!
//! This crate provides the core types and traits for the `OxiGDAL` ecosystem,
//! a pure Rust reimplementation of GDAL for cloud-native geospatial computing.
//!
//! # Features
//!
//! - `std` (default) - Enable standard library support
//! - `alloc` - Enable allocation support without full std
//! - `arrow` - Enable Apache Arrow integration for zero-copy buffers
//! - `async` - Enable async I/O traits
//!
//! # Core Types
//!
//! - [`BoundingBox`] - 2D spatial extent
//! - [`GeoTransform`] - Affine transformation for georeferencing
//! - [`RasterDataType`] - Pixel data types
//! - [`buffer::RasterBuffer`] - Typed raster data buffer
//!
//! # Example
//!
//! ```
//! use oxigdal_core::types::{BoundingBox, GeoTransform, RasterDataType};
//! use oxigdal_core::buffer::RasterBuffer;
//! use oxigdal_core::error::Result;
//!
//! # fn main() -> Result<()> {
//! // Create a bounding box
//! let bbox = BoundingBox::new(-180.0, -90.0, 180.0, 90.0)?;
//!
//! // Create a geotransform for a 1-degree resolution grid
//! let gt = GeoTransform::from_bounds(&bbox, 360, 180)?;
//!
//! // Create a raster buffer
//! let buffer = RasterBuffer::zeros(360, 180, RasterDataType::Float32);
//! # Ok(())
//! # }
//! ```
// Pedantic disabled to reduce noise - default clippy::all is sufficient
// #![warn(clippy::pedantic)]
extern crate alloc;
extern crate std;
/// Internal prelude that makes `alloc`-provided types and macros available in
/// `no_std` builds.
///
/// Under the `std` feature these names come from the standard prelude, so this
/// module is only wired in for `no_std` (`#[cfg(not(feature = "std"))]`) to keep
/// the `std` build byte-for-byte identical. Modules that use bare `Vec`,
/// `String`, `Box`, `format!` or `vec!` add
/// `#[cfg(not(feature = "std"))] use crate::compat::*;` at their top.
pub
// The advanced memory-management module (custom allocators, memory-mapped I/O,
// NUMA/huge-page support) relies on `parking_lot`, hashed collections, the global
// allocator and OS primitives, so it requires the standard library.
// Tutorial documentation
// Re-export commonly used items
pub use ;
pub use ;
pub use ;
pub use FieldValue;
pub use Mask;
pub use ;
/// Crate version
pub const VERSION: &str = env!;
/// Crate name
pub const NAME: &str = env!;