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}