radb_client 1.3.0

adb client for rust
Documentation
use simple_cmd::CommandBuilder;

use crate::types::{Adb, Client, ConnectionType};

pub(crate) trait CommandBuilderExt {
    #[allow(dead_code)]
    fn client<C>(self, client: C) -> Self
    where
        C: Into<Client>;

    fn addr<C>(self, addr: C) -> Self
    where
        C: Into<ConnectionType>;

    fn shell(client: &Client) -> CommandBuilder;

    fn adb(adb: &Adb) -> CommandBuilder;
}

impl CommandBuilderExt for CommandBuilder {
    fn client<C>(self, client: C) -> Self
    where
        C: Into<Client>,
    {
        self.args(client.into().addr)
    }

    fn addr<C>(self, addr: C) -> Self
    where
        C: Into<ConnectionType>,
    {
        self.args(addr.into())
    }

    fn shell(client: &Client) -> CommandBuilder {
        CommandBuilder::from(client).arg("shell")
    }

    fn adb(adb: &Adb) -> CommandBuilder {
        CommandBuilder::new(adb)
    }
}