use bus::{ActiveFourWire, ActiveThreeWire, Bus, FourWire, ThreeWire}; use device::Device; use embedded_hal::digital::v2::OutputPin; use embedded_hal::spi::FullDuplex; use network::Network; pub struct InactiveDevice { bus: SpiBus, network: NetworkImpl, } impl InactiveDevice { pub fn new(bus: SpiBus, network: NetworkImpl) -> Self { Self { bus, network } } } impl InactiveDevice, NetworkImpl> { pub fn activate>( self, spi: Spi, ) -> Device, NetworkImpl> { Device::new(self.bus.activate(spi), self.network) } } impl InactiveDevice { pub fn activate>( self, spi: Spi, ) -> Device, NetworkImpl> { Device::new(self.bus.activate(spi), self.network) } }