aboutsummaryrefslogtreecommitdiffstats
path: root/src/writer/loggable.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/writer/loggable.rs (renamed from src/loggable.rs)9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/loggable.rs b/src/writer/loggable.rs
index dd69668..894e173 100644
--- a/src/loggable.rs
+++ b/src/writer/loggable.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::{fmt::Display, mem, pin::pin, task::Poll};
use futures::ready;
@@ -5,6 +9,7 @@ use pin_project::pin_project;
pub use tokio::io::AsyncWrite;
#[pin_project]
+/// Wrapper struct for logging writes to `AsyncWrite` implementors.
#[derive(Debug)]
pub struct Loggable<W> {
log_buffer: Vec<u8>,
@@ -32,8 +37,8 @@ impl<W> Loggable<W> {
impl<W: AsyncWrite + Unpin + Send> Display for Loggable<W> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- let str = str::from_utf8(&self.log_buffer).unwrap_or("buffer to string conversion failed");
- f.write_str(str)
+ let str = String::from_utf8_lossy(&self.log_buffer);
+ write!(f, "{str}")
}
}