From 332ee84b59f33e3a3f1cb109e02a1c0c9fe108cd Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 20 Jun 2026 05:34:51 +0800 Subject: Add output protocol trait and implementations --- src/output_protocol/ipc.rs | 14 ++++++++++++++ src/output_protocol/stderr.rs | 14 ++++++++++++++ src/output_protocol/stdout.rs | 14 ++++++++++++++ src/output_protocol/tcp.rs | 14 ++++++++++++++ src/output_protocol/udp.rs | 14 ++++++++++++++ src/output_protocol/udp_broadcast.rs | 14 ++++++++++++++ 6 files changed, 84 insertions(+) create mode 100644 src/output_protocol/ipc.rs create mode 100644 src/output_protocol/stderr.rs create mode 100644 src/output_protocol/stdout.rs create mode 100644 src/output_protocol/tcp.rs create mode 100644 src/output_protocol/udp.rs create mode 100644 src/output_protocol/udp_broadcast.rs (limited to 'src/output_protocol') diff --git a/src/output_protocol/ipc.rs b/src/output_protocol/ipc.rs new file mode 100644 index 0000000..c9c88c1 --- /dev/null +++ b/src/output_protocol/ipc.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct IPCOutputProtocol {} + +impl OutputProtocol for IPCOutputProtocol { + async fn init(self) { + todo!() + } + + async fn send(self: std::sync::Arc, _str: &str) { + todo!() + } +} diff --git a/src/output_protocol/stderr.rs b/src/output_protocol/stderr.rs new file mode 100644 index 0000000..fabd390 --- /dev/null +++ b/src/output_protocol/stderr.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct StandardErrorProtocol; + +impl OutputProtocol for StandardErrorProtocol { + async fn init(self) { + // No initialization needed + } + + async fn send(self: std::sync::Arc, str: &str) { + eprintln!("{}", str); + } +} diff --git a/src/output_protocol/stdout.rs b/src/output_protocol/stdout.rs new file mode 100644 index 0000000..3640507 --- /dev/null +++ b/src/output_protocol/stdout.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct StandardOutputProtocol; + +impl OutputProtocol for StandardOutputProtocol { + async fn init(self) { + // No initialization needed + } + + async fn send(self: std::sync::Arc, str: &str) { + println!("{}", str); + } +} diff --git a/src/output_protocol/tcp.rs b/src/output_protocol/tcp.rs new file mode 100644 index 0000000..c2490e6 --- /dev/null +++ b/src/output_protocol/tcp.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct TCPOutputProtocol {} + +impl OutputProtocol for TCPOutputProtocol { + async fn init(self) { + todo!() + } + + async fn send(self: std::sync::Arc, _str: &str) { + todo!() + } +} diff --git a/src/output_protocol/udp.rs b/src/output_protocol/udp.rs new file mode 100644 index 0000000..f1e5876 --- /dev/null +++ b/src/output_protocol/udp.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct UDPOutputProtocol {} + +impl OutputProtocol for UDPOutputProtocol { + async fn init(self) { + todo!() + } + + async fn send(self: std::sync::Arc, _str: &str) { + todo!() + } +} diff --git a/src/output_protocol/udp_broadcast.rs b/src/output_protocol/udp_broadcast.rs new file mode 100644 index 0000000..5a5aa57 --- /dev/null +++ b/src/output_protocol/udp_broadcast.rs @@ -0,0 +1,14 @@ +use crate::OutputProtocol; + +#[derive(Debug, Default)] +pub struct UDPBroadcastOutputProtocol {} + +impl OutputProtocol for UDPBroadcastOutputProtocol { + async fn init(self) { + todo!() + } + + async fn send(self: std::sync::Arc, _str: &str) { + todo!() + } +} -- cgit