ergot_base/interface_manager/
null.rs1use serde::Serialize;
2
3use crate::Header;
4
5use super::{ConstInit, InterfaceManager, InterfaceSendError};
6
7pub struct NullInterfaceManager {
8 _priv: (),
9}
10
11impl ConstInit for NullInterfaceManager {
12 const INIT: Self = Self { _priv: () };
13}
14
15impl InterfaceManager for NullInterfaceManager {
16 fn send<T: Serialize>(&mut self, hdr: &Header, _data: &T) -> Result<(), InterfaceSendError> {
17 if hdr.dst.net_node_any() {
18 Err(InterfaceSendError::DestinationLocal)
19 } else {
20 Err(InterfaceSendError::NoRouteToDest)
21 }
22 }
23
24 fn send_raw(
25 &mut self,
26 hdr: &Header,
27 _hdr_raw: &[u8],
28 _data: &[u8],
29 ) -> Result<(), InterfaceSendError> {
30 if hdr.dst.net_node_any() {
31 Err(InterfaceSendError::DestinationLocal)
32 } else {
33 Err(InterfaceSendError::NoRouteToDest)
34 }
35 }
36
37 fn send_err(
38 &mut self,
39 hdr: &Header,
40 _err: crate::ProtocolError,
41 ) -> Result<(), InterfaceSendError> {
42 if hdr.dst.net_node_any() {
43 Err(InterfaceSendError::DestinationLocal)
44 } else {
45 Err(InterfaceSendError::NoRouteToDest)
46 }
47 }
48}