tramex_tools/interface/
interface_types.rs1use crate::data::Data;
4use crate::errors::TramexError;
5use crate::interface::interface_file::file_handler::File;
6use crate::interface::layer::Layers;
7#[cfg(feature = "websocket")]
8use crate::interface::websocket::ws_connection::WsConnection;
9
10pub enum Interface {
12 #[cfg(feature = "websocket")]
14 Ws(WsConnection),
15
16 File(File),
18}
19
20pub trait InterfaceTrait {
22 fn get_more_data(&mut self, _layer_list: Layers, data: &mut Data) -> Result<(), Vec<TramexError>>;
26
27 fn close(&mut self) -> Result<(), TramexError>;
31}
32
33impl core::fmt::Debug for Interface {
34 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
35 f.debug_struct("Interface")
36 .field(
37 "field",
38 match self {
39 #[cfg(feature = "websocket")]
40 Interface::Ws(ws) => ws,
41 Interface::File(file) => file,
42 },
43 )
44 .finish()
45 }
46}