ergot_base/interface_manager/
null.rs

1use 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::PlaceholderOhNo)
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::PlaceholderOhNo)
29        }
30    }
31}