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(&mut self, hdr: &Header, _data: &[u8]) -> Result<(), InterfaceSendError> {
25 if hdr.dst.net_node_any() {
26 Err(InterfaceSendError::DestinationLocal)
27 } else {
28 Err(InterfaceSendError::NoRouteToDest)
29 }
30 }
31
32 fn send_err(
33 &mut self,
34 hdr: &Header,
35 _err: crate::ProtocolError,
36 ) -> Result<(), InterfaceSendError> {
37 if hdr.dst.net_node_any() {
38 Err(InterfaceSendError::DestinationLocal)
39 } else {
40 Err(InterfaceSendError::NoRouteToDest)
41 }
42 }
43}