diff options
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}") } } |
