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
//! This crate aims to provide a flexible and high-level interface to the `libmtp` library, at
//! its current state is alpha software and may not be used in production since some features
//! are still missing, said this contributions are welcome.
//!
//! The usual way to start using this library is with the
//! [`detect_raw_devices`](device/raw/index.html) function which returns a list of
//! [`RawDevice`](device/raw/struct.RawDevice.html)s, i.e. the connected USB devices, using these
//! devices you can open an [`MtpDevice`](device/struct.MtpDevice.html), with this you can gather
//! device properties like manufacturer, model, battery level, etc; and manage objects like files,
//! tracks, albums, etc with [`Storage`](storage/struct.Storage.html) and [`StoragePool`](storage/struct.StoragePool.html).
//!
//! Here we list the more important modules:
//! - [`device`](device/index.html): Gather/set properties and obtain storage.
//! - [`storage`](storage/index.html): Send/get objects (files, tracks, etc) and manage storage.
//! - [`object`](object/index.html): Copying, moving and deleting objects.
//!
//! Aditionally if you want a more low-level control on the attributes of certain objects you may
//! want to check the methods to get and set properties in the [`Object`](object/trait.Object.html)
//! trait to see how to use it with instances of its [implementors](trait.Object.html#implementors).

use error::Error;

#[macro_use]
mod macros;

pub mod error;
pub mod internals;

pub mod util;

pub mod values;

pub mod device;
pub mod object;
pub mod storage;

/// Re-export for support convenience.
pub use chrono;

/// Custom Result type, this is the most used Result in this crate.
pub type Result<T> = std::result::Result<T, Error>;