nautilus_sockets/plugins/
logging.rs

1use std::io::{self, Write};
2
3use crate::{client::NautClient, server::NautServer};
4
5use super::SocketPlugin;
6
7/// A Default plugin that provides logging of events and server events if a naut server
8pub struct LoggingPlugin;
9
10impl SocketPlugin<'_, NautServer> for LoggingPlugin {
11    fn register(&self, socket: &mut crate::prelude::NautSocket<'_, NautServer>) {
12        socket.on_poll(move |socket| {
13            let stdout = io::stdout();
14            let mut handle = stdout.lock();
15            for event in socket.server().iter_server_events() {
16                let _ = writeln!(handle, "[LOG][SERVER EVENT] {event:?}");
17            }
18        });
19
20        socket.on_poll(move |socket| {
21            let stdout = io::stdout();
22            let mut handle = stdout.lock();
23            for event in socket.socket_events.iter() {
24                let _ = writeln!(handle, "[LOG][SOCKET EVENT] {event:?}");
25            }
26        });
27    }
28}
29
30impl SocketPlugin<'_, NautClient> for LoggingPlugin {
31    fn register(&self, socket: &mut crate::prelude::NautSocket<'_, NautClient>) {
32        socket.on_poll(move |server| {
33            let stdout = io::stdout();
34            let mut handle = stdout.lock();
35            for event in server.socket_events.iter() {
36                let _ = writeln!(handle, "[LOG][SOCKET EVENT] {event:?}");
37            }
38        });
39    }
40}