Struct ADBManager

Source
pub struct ADBManager { /* private fields */ }
Expand description

Center struct where adb commands are built, sent and parsed

Implementations§

Source§

impl ADBManager

Source

pub fn new() -> ADBManager

Examples found in repository?
examples/networking/pair.rs (line 10)
9fn main() {
10    let manager = ADBManager::new();
11
12    let mut pair = ADBPair::new("192.168.1.132".to_owned(), 42219, 562813);
13    let result = manager.execute(&mut pair);
14    match result {
15        Ok(ok) => println!("Connected: {ok}"),
16        Err(err) => println!("Could not connect: {err}"),
17    }
18}
More examples
Hide additional examples
examples/file_transfer/pull.rs (line 10)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 33363) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    let mut pull = ADBPull::new("/storage/emulated/0/DCIM/IMG_00000001.jpg", ".");
17    match manager.execute_path_based(&mut pull) {
18        Ok(ok) => println!("{ok}"),
19        Err(err) => println!("error {err}"),
20    }
21}
examples/shell/list_files.rs (line 10)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 35659) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15    manager.cwd("/storage/emulated/0");
16
17    let mut list = ADBList::default();
18    match manager.execute_path_based(&mut list) {
19        Ok(ok) => println!("{}", ok),
20        Err(err) => println!("Error: {}", err),
21    }
22}
examples/file_transfer/push.rs (line 10)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.1.132", 40785) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    manager.cwd("C:\\Users\\Radu\\Desktop");
17    let mut push = ADBPush::new("sample.txt", "/storage/emulated/0/sample.txt")
18        .compression(CompressionAlgorithm::Brotli);
19    match manager.execute_path_based(&mut push) {
20        Ok(ok) => println!("{ok}"),
21        Err(err) => println!("error {err}"),
22    }
23}
examples/general/general_info.rs (line 11)
10fn main() {
11    let mut manager = ADBManager::new();
12    match manager.connect("192.168.0.105", 33363) {
13        Ok(()) => println!("Successfully connected"),
14        Err(e) => println!("Could not connect: {}", e),
15    }
16
17    let mut list = ADBDevices::default().long();
18    match manager.execute(&mut list) {
19        Ok(ok) => {
20            println!("{}", ok.to_string());
21
22            let parsed = DeviceInfo::from(ok);
23            println!(
24                "{} {} {}",
25                parsed.product, parsed.model, parsed.transport_id
26            );
27        }
28        Err(err) => println!("Error: {}", err),
29    }
30
31    let mut help = ADBHelp::default();
32    println!("{}", manager.execute(&mut help).unwrap().to_string());
33
34    let mut version = ADBVersion::default();
35    let version = Version::from(manager.execute(&mut version).unwrap());
36    println!(
37        "adb version: {}, version: {}, install: {}",
38        version.adb_version, version.version, version.install_path
39    );
40}
Source

pub fn connect(&mut self, ip: &str, port: u32) -> Result<(), String>

Establish a connection to a device via TCP/IP

Examples found in repository?
examples/file_transfer/pull.rs (line 11)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 33363) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    let mut pull = ADBPull::new("/storage/emulated/0/DCIM/IMG_00000001.jpg", ".");
17    match manager.execute_path_based(&mut pull) {
18        Ok(ok) => println!("{ok}"),
19        Err(err) => println!("error {err}"),
20    }
21}
More examples
Hide additional examples
examples/shell/list_files.rs (line 11)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 35659) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15    manager.cwd("/storage/emulated/0");
16
17    let mut list = ADBList::default();
18    match manager.execute_path_based(&mut list) {
19        Ok(ok) => println!("{}", ok),
20        Err(err) => println!("Error: {}", err),
21    }
22}
examples/file_transfer/push.rs (line 11)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.1.132", 40785) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    manager.cwd("C:\\Users\\Radu\\Desktop");
17    let mut push = ADBPush::new("sample.txt", "/storage/emulated/0/sample.txt")
18        .compression(CompressionAlgorithm::Brotli);
19    match manager.execute_path_based(&mut push) {
20        Ok(ok) => println!("{ok}"),
21        Err(err) => println!("error {err}"),
22    }
23}
examples/general/general_info.rs (line 12)
10fn main() {
11    let mut manager = ADBManager::new();
12    match manager.connect("192.168.0.105", 33363) {
13        Ok(()) => println!("Successfully connected"),
14        Err(e) => println!("Could not connect: {}", e),
15    }
16
17    let mut list = ADBDevices::default().long();
18    match manager.execute(&mut list) {
19        Ok(ok) => {
20            println!("{}", ok.to_string());
21
22            let parsed = DeviceInfo::from(ok);
23            println!(
24                "{} {} {}",
25                parsed.product, parsed.model, parsed.transport_id
26            );
27        }
28        Err(err) => println!("Error: {}", err),
29    }
30
31    let mut help = ADBHelp::default();
32    println!("{}", manager.execute(&mut help).unwrap().to_string());
33
34    let mut version = ADBVersion::default();
35    let version = Version::from(manager.execute(&mut version).unwrap());
36    println!(
37        "adb version: {}, version: {}, install: {}",
38        version.adb_version, version.version, version.install_path
39    );
40}
Source

pub fn cwd(&mut self, path: &str)

Set the current working directory for all future commands where a path on the remote is needed

Examples found in repository?
examples/shell/list_files.rs (line 15)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 35659) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15    manager.cwd("/storage/emulated/0");
16
17    let mut list = ADBList::default();
18    match manager.execute_path_based(&mut list) {
19        Ok(ok) => println!("{}", ok),
20        Err(err) => println!("Error: {}", err),
21    }
22}
More examples
Hide additional examples
examples/file_transfer/push.rs (line 16)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.1.132", 40785) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    manager.cwd("C:\\Users\\Radu\\Desktop");
17    let mut push = ADBPush::new("sample.txt", "/storage/emulated/0/sample.txt")
18        .compression(CompressionAlgorithm::Brotli);
19    match manager.execute_path_based(&mut push) {
20        Ok(ok) => println!("{ok}"),
21        Err(err) => println!("error {err}"),
22    }
23}
Source

pub fn execute(&self, cmd: &mut impl ADBCommand) -> Result<ADBResult, String>

Execute an arbitrary command

Examples found in repository?
examples/networking/pair.rs (line 13)
9fn main() {
10    let manager = ADBManager::new();
11
12    let mut pair = ADBPair::new("192.168.1.132".to_owned(), 42219, 562813);
13    let result = manager.execute(&mut pair);
14    match result {
15        Ok(ok) => println!("Connected: {ok}"),
16        Err(err) => println!("Could not connect: {err}"),
17    }
18}
More examples
Hide additional examples
examples/general/general_info.rs (line 18)
10fn main() {
11    let mut manager = ADBManager::new();
12    match manager.connect("192.168.0.105", 33363) {
13        Ok(()) => println!("Successfully connected"),
14        Err(e) => println!("Could not connect: {}", e),
15    }
16
17    let mut list = ADBDevices::default().long();
18    match manager.execute(&mut list) {
19        Ok(ok) => {
20            println!("{}", ok.to_string());
21
22            let parsed = DeviceInfo::from(ok);
23            println!(
24                "{} {} {}",
25                parsed.product, parsed.model, parsed.transport_id
26            );
27        }
28        Err(err) => println!("Error: {}", err),
29    }
30
31    let mut help = ADBHelp::default();
32    println!("{}", manager.execute(&mut help).unwrap().to_string());
33
34    let mut version = ADBVersion::default();
35    let version = Version::from(manager.execute(&mut version).unwrap());
36    println!(
37        "adb version: {}, version: {}, install: {}",
38        version.adb_version, version.version, version.install_path
39    );
40}
Source

pub fn execute_path_based( &self, cmd: &mut impl ADBPathCommand, ) -> Result<ADBResult, String>

Execute an arbitrary path command

Examples found in repository?
examples/file_transfer/pull.rs (line 17)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 33363) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    let mut pull = ADBPull::new("/storage/emulated/0/DCIM/IMG_00000001.jpg", ".");
17    match manager.execute_path_based(&mut pull) {
18        Ok(ok) => println!("{ok}"),
19        Err(err) => println!("error {err}"),
20    }
21}
More examples
Hide additional examples
examples/shell/list_files.rs (line 18)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.0.105", 35659) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15    manager.cwd("/storage/emulated/0");
16
17    let mut list = ADBList::default();
18    match manager.execute_path_based(&mut list) {
19        Ok(ok) => println!("{}", ok),
20        Err(err) => println!("Error: {}", err),
21    }
22}
examples/file_transfer/push.rs (line 19)
9fn main() {
10    let mut manager = ADBManager::new();
11    match manager.connect("192.168.1.132", 40785) {
12        Ok(()) => println!("Successfully connected"),
13        Err(e) => println!("Could not connect: {}", e),
14    }
15
16    manager.cwd("C:\\Users\\Radu\\Desktop");
17    let mut push = ADBPush::new("sample.txt", "/storage/emulated/0/sample.txt")
18        .compression(CompressionAlgorithm::Brotli);
19    match manager.execute_path_based(&mut push) {
20        Ok(ok) => println!("{ok}"),
21        Err(err) => println!("error {err}"),
22    }
23}
Source

pub fn disconnect(&mut self, ip: &str, port: u32)

Disconnect from given TCP/IP device

Source

pub fn disconnect_all(&mut self)

Disconnect all connected devices

Trait Implementations§

Source§

impl Default for ADBManager

Source§

fn default() -> ADBManager

Returns the “default value” for a type. Read more
Source§

impl Drop for ADBManager

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.