Expand description
Resume Data (.aria2) Serialization System
Provides complete download state persistence using JSON format for cross-restart resumption. This module handles serialization/deserialization of download state including progress, URIs, status, timing, and protocol-specific information.
§Architecture
resume_data.rs (this file)
├── ResumeData struct - Complete download state
├── UriState struct - Per-URI status tracking
├── ChecksumInfo struct - Hash verification info
├── ResumeDataExt trait - Conversion from/to RequestGroup
├── RestoreContext - State container for session restoration
└── impl ResumeData { serialize, deserialize, save, load }
Integration:
- Works alongside existing BtProgressManager (BT-specific text format)
- Uses JSON for human-readable, debuggable output
- Supports both HTTP/FTP and BitTorrent downloadsStructs§
- Checksum
Info - Checksum information for integrity verification
- Mirror
Restore Info - Per-mirror restoration information for Metalink downloads
- Resume
Data - Complete download state for persistence across process restarts
- UriState
- Per-URI state tracking for mirror management
Enums§
- Restore
State - Protocol-specific restore state extracted from ResumeData
Traits§
- Resume
Data Ext - Extension trait for converting between ResumeData and RequestGroup