1use crate::{client::UdsClient, ClientError};
4use ace_sim::node::SimNode;
5
6impl<
21 const PENDING: usize,
22 const SIM_MAX_FRAME: usize,
23 const SIM_MAX_OUTBOX: usize,
24 const MAX_EVENTS: usize,
25 const PERIODIC_DIDS: usize,
26 const MAX_DATA: usize,
27 > SimNode<SIM_MAX_FRAME, SIM_MAX_OUTBOX>
28 for UdsClient<PENDING, SIM_MAX_FRAME, SIM_MAX_OUTBOX, MAX_EVENTS, PERIODIC_DIDS, MAX_DATA>
29{
30 type Error = ClientError;
31
32 fn address(&self) -> &ace_sim::io::NodeAddress {
33 UdsClient::address(self)
34 }
35
36 fn handle(
37 &mut self,
38 src: &ace_sim::io::NodeAddress,
39 data: &[u8],
40 now: ace_sim::clock::Instant,
41 ) -> Result<(), Self::Error> {
42 UdsClient::handle(self, src, data, now)
43 }
44
45 fn tick(&mut self, now: ace_sim::clock::Instant) -> Result<(), Self::Error> {
46 UdsClient::tick(self, now)
47 }
48
49 fn drain_outbox(
50 &mut self,
51 out: &mut heapless::Vec<
52 (ace_sim::io::NodeAddress, heapless::Vec<u8, SIM_MAX_FRAME>),
53 SIM_MAX_OUTBOX,
54 >,
55 ) -> usize {
56 UdsClient::drain_outbox(self, out)
57 }
58}
59
60