Skip to main content

oxigdal_mobile_enhanced/
lib.rs

1//! OxiGDAL Mobile Enhanced - Advanced mobile platform optimizations
2//!
3//! This crate provides comprehensive mobile platform optimizations for iOS and Android,
4//! focusing on performance, battery efficiency, network optimization, and mobile-specific
5//! features.
6//!
7//! # Features
8//!
9//! - **Battery-Aware Processing**: Adaptive algorithms that adjust based on battery level
10//! - **Network Optimization**: Efficient data transfer minimizing cellular usage
11//! - **Storage Optimization**: Compression and caching strategies for limited storage
12//! - **Background Processing**: Safe background task execution on mobile platforms
13//! - **Memory Management**: Mobile-specific memory pressure handling
14//! - **Performance Tuning**: Platform-specific optimizations for iOS and Android
15//!
16//! # Architecture
17//!
18//! The crate is organized into platform-specific and cross-platform modules:
19//!
20//! - **iOS Module** (`ios`): iOS-specific optimizations including Metal GPU acceleration hints,
21//!   Core Image integration, and iOS memory management
22//! - **Android Module** (`android`): Android-specific optimizations including RenderScript hints,
23//!   Android Runtime optimizations, and lifecycle-aware processing
24//! - **Battery Module** (`battery`): Cross-platform battery-aware algorithms
25//! - **Network Module** (`network`): Mobile network optimization strategies
26//! - **Storage Module** (`storage`): Mobile storage and caching strategies
27//! - **Background Module** (`background`): Background task management
28//!
29//! # Usage Example
30//!
31//! ```rust,no_run
32//! use oxigdal_mobile_enhanced::battery::{BatteryMonitor, ProcessingMode};
33//! use oxigdal_mobile_enhanced::network::NetworkOptimizer;
34//!
35//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
36//! // Create battery monitor
37//! let monitor = BatteryMonitor::new()?;
38//!
39//! // Adjust processing based on battery level
40//! let mode = monitor.recommended_processing_mode();
41//! match mode {
42//!     ProcessingMode::HighPerformance => {
43//!         // Full processing enabled
44//!     }
45//!     ProcessingMode::Balanced => {
46//!         // Moderate processing
47//!     }
48//!     ProcessingMode::PowerSaver => {
49//!         // Minimal processing
50//!     }
51//! }
52//!
53//! // Optimize network transfers
54//! let optimizer = NetworkOptimizer::new();/// let data = vec![0u8; 100];//! let compressed_data = optimizer.compress_for_transfer(&data)?;
55//! # Ok(())
56//! # }
57//! ```
58//!
59//! # COOLJAPAN Policies
60//!
61//! This crate adheres to COOLJAPAN ecosystem policies:
62//! - **Pure Rust**: 100% Pure Rust implementation
63//! - **No Unwrap**: All error cases explicitly handled
64//! - **Workspace**: Version management via workspace
65//! - **Latest Crates**: Always use latest stable dependencies
66//! - **No Warnings**: Code compiles without warnings
67//!
68//! # Platform Support
69//!
70//! ## iOS
71//! - Minimum iOS version: 13.0
72//! - Targets: `aarch64-apple-ios`, `x86_64-apple-ios` (simulator)
73//! - Features: Metal GPU hints, Core Image optimization, iOS memory pressure handling
74//!
75//! ## Android
76//! - Minimum Android version: API 24 (Android 7.0)
77//! - Targets: `aarch64-linux-android`, `armv7-linux-androideabi`, `x86_64-linux-android`
78//! - Features: RenderScript hints, ART optimization, Android lifecycle awareness
79
80#![warn(missing_docs)]
81#![cfg_attr(not(feature = "std"), no_std)]
82
83// Alloc support for no_std environments
84#[cfg(all(not(feature = "std"), feature = "alloc"))]
85extern crate alloc;
86
87/// Battery-aware processing and power management
88pub mod battery;
89
90/// Mobile network optimization
91pub mod network;
92
93/// Background task management
94pub mod background;
95
96/// Mobile storage optimization
97pub mod storage;
98
99/// iOS-specific optimizations
100#[cfg(feature = "ios")]
101pub mod ios;
102
103/// Android-specific optimizations
104#[cfg(feature = "android")]
105pub mod android;
106
107/// Common error types for mobile-enhanced operations
108pub mod error;
109
110// Re-export commonly used types
111pub use error::{MobileError, Result};
112
113#[cfg(test)]
114mod tests {
115    use super::*;
116
117    #[test]
118    fn test_module_availability() {
119        // Ensure all modules compile
120        let _battery = battery::BatteryLevel::Full;
121        let _network = network::NetworkType::WiFi;
122    }
123
124    #[test]
125    fn test_error_types() {
126        let err = MobileError::BatteryMonitoringNotSupported;
127        assert!(format!("{}", err).contains("Battery monitoring"));
128    }
129}