[][src]Struct atat::Client

pub struct Client<Tx, T, BufLen = U256, ComCapacity = U3, ResCapacity = U5, UrcCapacity = U10> where
    Tx: Write<u8>,
    T: CountDown,
    BufLen: ArrayLength<u8>,
    ComCapacity: ArrayLength<Command>,
    ResCapacity: ArrayLength<Result<Vec<u8, BufLen>, Error>>,
    UrcCapacity: ArrayLength<Vec<u8, BufLen>>, 
{ /* fields omitted */ }

Client responsible for handling send, receive and timeout from the userfacing side. The client is decoupled from the ingress-manager through some spsc queue consumers, where any received responses can be dequeued. The Client also has an spsc producer, to allow signaling commands like clearBuffer to the ingress-manager.

Implementations

impl<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> where
    Tx: Write<u8>,
    T: CountDown,
    T::Time: From<u32>,
    BufLen: ArrayLength<u8>,
    ComCapacity: ArrayLength<Command>,
    ResCapacity: ArrayLength<Result<Vec<u8, BufLen>, Error>>,
    UrcCapacity: ArrayLength<Vec<u8, BufLen>>, 
[src]

pub fn new(
    tx: Tx,
    res_c: Consumer<'static, Result<Vec<u8, BufLen>, Error>, ResCapacity, u8>,
    urc_c: Consumer<'static, Vec<u8, BufLen>, UrcCapacity, u8>,
    com_p: Producer<'static, Command, ComCapacity, u8>,
    timer: T,
    config: Config
) -> Self
[src]

Trait Implementations

impl<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> AtatClient for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> where
    Tx: Write<u8>,
    T: CountDown,
    T::Time: From<u32>,
    BufLen: ArrayLength<u8>,
    ComCapacity: ArrayLength<Command>,
    ResCapacity: ArrayLength<Result<Vec<u8, BufLen>, Error>>,
    UrcCapacity: ArrayLength<Vec<u8, BufLen>>, 
[src]

Auto Trait Implementations

impl<Tx, T, BufLen = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, ComCapacity = UInt<UInt<UTerm, B1>, B1>, ResCapacity = UInt<UInt<UInt<UTerm, B1>, B0>, B1>, UrcCapacity = UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>> !RefUnwindSafe for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity>

impl<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> Send for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> where
    T: Send,
    Tx: Send

impl<Tx, T, BufLen = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, ComCapacity = UInt<UInt<UTerm, B1>, B1>, ResCapacity = UInt<UInt<UInt<UTerm, B1>, B0>, B1>, UrcCapacity = UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>> !Sync for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity>

impl<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> Unpin for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity> where
    T: Unpin,
    Tx: Unpin

impl<Tx, T, BufLen = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, ComCapacity = UInt<UInt<UTerm, B1>, B1>, ResCapacity = UInt<UInt<UInt<UTerm, B1>, B0>, B1>, UrcCapacity = UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>> !UnwindSafe for Client<Tx, T, BufLen, ComCapacity, ResCapacity, UrcCapacity>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.