From 97603c037cfd38ae53e836dbd77cb0af293b88f8 Mon Sep 17 00:00:00 2001 From: Sherlock Holo Date: Wed, 18 Sep 2024 17:25:51 +0800 Subject: [PATCH] feat: implement Debug trait for more types --- src/async.rs | 25 +++++++++++++++++++++++++ src/lib.rs | 26 +++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/async.rs b/src/async.rs index fae44d4..4a89724 100644 --- a/src/async.rs +++ b/src/async.rs @@ -7,6 +7,7 @@ use std::{ any::Any, ops::Deref, }; +use std::fmt::{Debug, Formatter}; use crate::*; use futures_core::{stream::{Stream, FusedStream}, future::FusedFuture}; use futures_sink::Sink; @@ -141,6 +142,12 @@ pub struct SendFut<'a, T> { hook: Option>, } +impl<'a, T> Debug for SendFut<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("SendFut").finish() + } +} + impl std::marker::Unpin for SendFut<'_, T> {} impl<'a, T> SendFut<'a, T> { @@ -282,6 +289,12 @@ impl<'a, T> SendSink<'a, T> { } } +impl<'a, T> Debug for SendSink<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("SendSink").finish() + } +} + impl<'a, T> Sink for SendSink<'a, T> { type Error = SendError; @@ -459,6 +472,12 @@ impl<'a, T> RecvFut<'a, T> { } } +impl<'a, T> Debug for RecvFut<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("RecvFut").finish() + } +} + impl<'a, T> Drop for RecvFut<'a, T> { fn drop(&mut self) { self.reset_hook(); @@ -516,6 +535,12 @@ impl<'a, T> RecvStream<'a, T> { } } +impl<'a, T> Debug for RecvStream<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("RecvStream").finish() + } +} + impl<'a, T> Clone for RecvStream<'a, T> { fn clone(&self) -> RecvStream<'a, T> { RecvStream(RecvFut::new(self.0.receiver.clone())) diff --git a/src/lib.rs b/src/lib.rs index 2e52179..1e11f08 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,7 +46,7 @@ use std::{ thread, fmt, }; - +use std::fmt::Formatter; #[cfg(feature = "spin")] use spin1::{Mutex as Spinlock, MutexGuard as SpinlockGuard}; use crate::signal::{Signal, SyncSignal}; @@ -866,6 +866,12 @@ impl WeakSender { } } +impl fmt::Debug for WeakSender { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("WeakSender").finish() + } +} + impl Clone for WeakSender { /// Clones this [`WeakSender`]. fn clone(&self) -> Self { @@ -1041,6 +1047,12 @@ pub struct Iter<'a, T> { receiver: &'a Receiver, } +impl<'a, T> fmt::Debug for Iter<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("Iter").field("receiver", &self.receiver).finish() + } +} + impl<'a, T> Iterator for Iter<'a, T> { type Item = T; @@ -1054,6 +1066,12 @@ pub struct TryIter<'a, T> { receiver: &'a Receiver, } +impl<'a, T> fmt::Debug for TryIter<'a, T> { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("TryIter").field("receiver", &self.receiver).finish() + } +} + impl<'a, T> Iterator for TryIter<'a, T> { type Item = T; @@ -1091,6 +1109,12 @@ pub struct IntoIter { receiver: Receiver, } +impl fmt::Debug for IntoIter { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.debug_struct("IntoIter").field("receiver", &self.receiver).finish() + } +} + impl Iterator for IntoIter { type Item = T;