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
//! # mtp-rs
//!
//! A pure-Rust MTP (Media Transfer Protocol) library targeting modern Android devices.
//!
//! ## Features
//!
//! - **Runtime agnostic**: Uses `futures` traits, works with any async runtime
//! - **Two-level API**: High-level `mtp::` for media devices, low-level `ptp::` for cameras
//! - **Streaming**: Memory-efficient streaming downloads with progress tracking
//! - **Type safe**: Newtype wrappers prevent mixing up IDs
//!
//! ## Quick start
//!
//! ```rust,ignore
//! use mtp_rs::mtp::MtpDevice;
//!
//! # async fn example() -> Result<(), mtp_rs::Error> {
//! // Open the first MTP device
//! let device = MtpDevice::open_first().await?;
//!
//! println!("Connected to: {} {}",
//! device.device_info().manufacturer,
//! device.device_info().model);
//!
//! // Get storages
//! for storage in device.storages().await? {
//! println!("Storage: {} ({} free)",
//! storage.info().description,
//! storage.info().free_space_bytes);
//!
//! // List root folder
//! for obj in storage.list_objects(None).await? {
//! let kind = if obj.is_folder() { "DIR " } else { "FILE" };
//! println!(" {} {} ({} bytes)", kind, obj.filename, obj.size);
//! }
//! }
//! # Ok(())
//! # }
//! ```
pub use Error;
// Re-export core types for convenience
pub use ;
// Re-export high-level MTP types
pub use ;