1use crate::{client::UdsClient, ClientError};
4use ace_core::Vec;
5use ace_sim::node::SimNode;
6
7impl<
12 const PENDING: usize,
13 const SIM_MAX_FRAME: usize,
14 const SIM_MAX_OUTBOX: usize,
15 const MAX_EVENTS: usize,
16 const PERIODIC_DIDS: usize,
17 const MAX_DATA: usize,
18 > SimNode<SIM_MAX_FRAME, SIM_MAX_OUTBOX>
19 for UdsClient<PENDING, SIM_MAX_FRAME, SIM_MAX_OUTBOX, MAX_EVENTS, PERIODIC_DIDS, MAX_DATA>
20{
21 type Error = ClientError;
22
23 fn address(&self) -> &ace_sim::io::NodeAddress {
24 UdsClient::address(self)
25 }
26
27 fn handle(
28 &mut self,
29 src: &ace_sim::io::NodeAddress,
30 data: &[u8],
31 now: ace_sim::clock::Instant,
32 ) -> Result<(), Self::Error> {
33 UdsClient::handle(self, src, data, now)
34 }
35
36 fn tick(&mut self, now: ace_sim::clock::Instant) -> Result<(), Self::Error> {
37 UdsClient::tick(self, now)
38 }
39
40 fn drain_outbox(
41 &mut self,
42 out: &mut Vec<(ace_sim::io::NodeAddress, Vec<u8, SIM_MAX_FRAME>), SIM_MAX_OUTBOX>,
43 ) -> usize {
44 UdsClient::drain_outbox(self, out)
45 }
46}
47
48