pub mod credentials;
pub mod device;
pub mod discovery;
pub mod error;
pub(crate) mod lockdown;
pub(crate) mod mux;
#[cfg(all(feature = "tunnel", feature = "mdns"))]
pub(crate) mod pairing_transport;
pub(crate) mod proto;
#[cfg(feature = "tunnel")]
pub(crate) mod psk_tls;
pub mod services;
#[cfg(test)]
pub(crate) mod test_util;
pub(crate) mod tunnel;
pub(crate) mod xpc;
pub use credentials::{PersistedCredentials, RemotePairingRecord};
#[cfg(feature = "mdns")]
pub use device::discover_paired_mobdev2_devices;
pub use device::{
connect_direct_usb_tunnel, connect_remote_pairing_tunnel, connect_tcp_lockdown_tunnel,
ConnectOptions, ConnectedDevice, InternationalConfiguration, PairedMobdev2Device,
ServiceStream,
};
#[cfg(feature = "mdns")]
pub use discovery::{browse_mobdev2, browse_remotepairing, BonjourService, MdnsDevice};
pub use discovery::{DeviceEvent, DeviceInfo};
pub use error::CoreError;
pub use lockdown::{
default_pair_record_path, handshake_only_service_tls, recv_lockdown, send_lockdown,
start_lockdown_session, start_service, strip_service_tls, wrap_service_tls, GetValueRequest,
GetValueResponse, LockdownClient, LockdownError, PairRecord, PairRecordError, QueryTypeRequest,
QueryTypeResponse, RemoveValueRequest, ServiceInfo, SetValueRequest, StartServiceRequest,
StartServiceResponse, StartSessionRequest, StartSessionResponse, StopSessionRequest,
ValueOperationResponse, CORE_DEVICE_PROXY, LOCKDOWN_PORT,
};
#[cfg(feature = "supervised-pair")]
pub use lockdown::{pair_supervised, save_pair_record, FullPairRecord};
pub use mux::MuxClient;
#[cfg(all(feature = "tunnel", feature = "mdns"))]
pub use pairing_transport::{pair_new_device, PairedCredentials, PairingTransportError};
pub use proto::nskeyedarchiver_encode::{
archive_array, archive_bool, archive_data, archive_dict, archive_float, archive_int,
archive_nsurl, archive_null, archive_string, archive_uuid, archive_xct_capabilities,
archive_xctest_configuration, NsUrl, XcTestConfiguration, XctCapabilities,
};
#[cfg(feature = "accessibility_audit")]
pub use services::accessibility_audit;
#[cfg(feature = "afc")]
pub use services::afc;
#[cfg(feature = "amfi")]
pub use services::amfi;
#[cfg(feature = "apps")]
pub use services::apps;
#[cfg(feature = "arbitration")]
pub use services::arbitration;
#[cfg(feature = "companion")]
pub use services::companion;
#[cfg(feature = "crashreport")]
pub use services::crashreport;
#[cfg(feature = "debugserver")]
pub use services::debugserver;
#[cfg(feature = "deviceinfo")]
pub use services::deviceinfo;
#[cfg(feature = "diagnostics")]
pub use services::diagnostics;
#[cfg(feature = "diagnosticsservice")]
pub use services::diagnosticsservice;
#[cfg(feature = "dproxy")]
pub use services::dproxy;
#[cfg(feature = "dtx")]
pub use services::dtx;
#[cfg(feature = "fetchsymbols")]
pub use services::fetchsymbols;
#[cfg(feature = "file_relay")]
pub use services::file_relay;
#[cfg(feature = "fileservice")]
pub use services::fileservice;
#[cfg(feature = "heartbeat")]
pub use services::heartbeat;
#[cfg(feature = "idam")]
pub use services::idam;
#[cfg(feature = "imagemounter")]
pub use services::imagemounter;
#[cfg(feature = "instruments")]
pub use services::instruments;
#[cfg(feature = "mcinstall")]
pub use services::mcinstall;
#[cfg(feature = "misagent")]
pub use services::misagent;
#[cfg(feature = "mobileactivation")]
pub use services::mobileactivation;
#[cfg(feature = "notificationproxy")]
pub use services::notificationproxy;
#[cfg(feature = "ostrace")]
pub use services::ostrace;
#[cfg(feature = "pcap")]
pub use services::pcap;
#[cfg(feature = "power_assertion")]
pub use services::power_assertion;
#[cfg(feature = "preboard")]
pub use services::preboard;
#[cfg(feature = "prepare")]
pub use services::prepare;
#[cfg(feature = "restore")]
pub use services::restore;
#[cfg(feature = "screenshot")]
pub use services::screenshot;
#[cfg(feature = "springboard")]
pub use services::springboard;
#[cfg(feature = "syslog")]
pub use services::syslog;
#[cfg(feature = "testmanager")]
pub use services::testmanager;
#[cfg(feature = "webinspector")]
pub use services::webinspector;
pub use services::{backup2, device_link, simlocation};
pub use tunnel::{TunMode, TunnelError, TunnelHandle, TunnelInfo, TunnelManager};
#[cfg(feature = "tunnel")]
pub use xpc::client::XpcClient;
pub use xpc::message::flags as xpc_message_flags;
pub use xpc::message::{
decode_message as decode_xpc_message, encode_message as encode_xpc_message, XpcMessage,
XpcValue,
};
pub use xpc::rsd::{RsdHandshake, ServiceDescriptor, RSD_PORT};
pub use xpc::XpcError;
pub async fn list_devices() -> Result<Vec<DeviceInfo>, CoreError> {
discovery::list_devices().await
}
pub async fn watch_devices(
) -> Result<impl futures_core::Stream<Item = Result<DeviceEvent, CoreError>>, CoreError> {
discovery::watch_devices().await
}
pub async fn connect(udid: &str, opts: ConnectOptions) -> Result<ConnectedDevice, CoreError> {
device::connect(udid, opts).await
}
#[cfg(feature = "mdns")]
pub async fn discover_mdns() -> Result<impl futures_core::Stream<Item = MdnsDevice>, CoreError> {
discovery::discover_mdns().await
}