//! Hardware and remote signing backends.
//!
//! Each backend is feature-gated so the default build (and the default
//! wheel) carries no device-transport native dependencies.
use crateCoreError;
/// A blocking channel that carries one APDU to a device and returns its answer.
///
/// `ledger::LedgerDevice::open` uses the built-in USB HID transport;
/// `ledger::LedgerDevice::with_transport` accepts another implementation,
/// such as a TCP client for Ledger's Speculos emulator or a replay of
/// recorded exchanges, so the APDU logic can run without a device.