Skip to content

Commit dbddd3b

Browse files
feat: better debug impls
1 parent cf0aa20 commit dbddd3b

File tree

3 files changed

+70
-52
lines changed

3 files changed

+70
-52
lines changed

src/client.rs

Lines changed: 39 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1825,32 +1825,28 @@ mod tests {
18251825

18261826
#[async_attributes::test]
18271827
async fn store() {
1828-
generic_store(" ", |c, set, query| {
1829-
async move {
1830-
c.lock()
1831-
.await
1832-
.store(set, query)
1833-
.await?
1834-
.collect::<Vec<_>>()
1835-
.await;
1836-
Ok(())
1837-
}
1828+
generic_store(" ", |c, set, query| async move {
1829+
c.lock()
1830+
.await
1831+
.store(set, query)
1832+
.await?
1833+
.collect::<Vec<_>>()
1834+
.await;
1835+
Ok(())
18381836
})
18391837
.await;
18401838
}
18411839

18421840
#[async_attributes::test]
18431841
async fn uid_store() {
1844-
generic_store(" UID ", |c, set, query| {
1845-
async move {
1846-
c.lock()
1847-
.await
1848-
.uid_store(set, query)
1849-
.await?
1850-
.collect::<Vec<_>>()
1851-
.await;
1852-
Ok(())
1853-
}
1842+
generic_store(" UID ", |c, set, query| async move {
1843+
c.lock()
1844+
.await
1845+
.uid_store(set, query)
1846+
.await?
1847+
.collect::<Vec<_>>()
1848+
.await;
1849+
Ok(())
18541850
})
18551851
.await;
18561852
}
@@ -1870,22 +1866,18 @@ mod tests {
18701866

18711867
#[async_attributes::test]
18721868
async fn copy() {
1873-
generic_copy(" ", |c, set, query| {
1874-
async move {
1875-
c.lock().await.copy(set, query).await?;
1876-
Ok(())
1877-
}
1869+
generic_copy(" ", |c, set, query| async move {
1870+
c.lock().await.copy(set, query).await?;
1871+
Ok(())
18781872
})
18791873
.await;
18801874
}
18811875

18821876
#[async_attributes::test]
18831877
async fn uid_copy() {
1884-
generic_copy(" UID ", |c, set, query| {
1885-
async move {
1886-
c.lock().await.uid_copy(set, query).await?;
1887-
Ok(())
1888-
}
1878+
generic_copy(" UID ", |c, set, query| async move {
1879+
c.lock().await.uid_copy(set, query).await?;
1880+
Ok(())
18891881
})
18901882
.await;
18911883
}
@@ -1944,33 +1936,29 @@ mod tests {
19441936

19451937
#[async_attributes::test]
19461938
async fn fetch() {
1947-
generic_fetch(" ", |c, seq, query| {
1948-
async move {
1949-
c.lock()
1950-
.await
1951-
.fetch(seq, query)
1952-
.await?
1953-
.collect::<Vec<_>>()
1954-
.await;
1955-
1956-
Ok(())
1957-
}
1939+
generic_fetch(" ", |c, seq, query| async move {
1940+
c.lock()
1941+
.await
1942+
.fetch(seq, query)
1943+
.await?
1944+
.collect::<Vec<_>>()
1945+
.await;
1946+
1947+
Ok(())
19581948
})
19591949
.await;
19601950
}
19611951

19621952
#[async_attributes::test]
19631953
async fn uid_fetch() {
1964-
generic_fetch(" UID ", |c, seq, query| {
1965-
async move {
1966-
c.lock()
1967-
.await
1968-
.uid_fetch(seq, query)
1969-
.await?
1970-
.collect::<Vec<_>>()
1971-
.await;
1972-
Ok(())
1973-
}
1954+
generic_fetch(" UID ", |c, seq, query| async move {
1955+
c.lock()
1956+
.await
1957+
.uid_fetch(seq, query)
1958+
.await?
1959+
.collect::<Vec<_>>()
1960+
.await;
1961+
Ok(())
19741962
})
19751963
.await;
19761964
}

src/imap_stream.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::fmt;
12
use std::pin::Pin;
23

34
use async_std::io::{self, Read, Write};
@@ -45,6 +46,24 @@ enum DecodeResult {
4546
None(Block<'static>),
4647
}
4748

49+
impl fmt::Debug for DecodeResult {
50+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
51+
match self {
52+
DecodeResult::Some {
53+
response,
54+
buffer,
55+
used,
56+
} => f
57+
.debug_struct("DecodeResult::Some")
58+
.field("response", response)
59+
.field("block", &buffer.len())
60+
.field("used", used)
61+
.finish(),
62+
DecodeResult::None(block) => write!(f, "DecodeResult::None({})", block.len()),
63+
}
64+
}
65+
}
66+
4867
impl<R: Read + Write + Unpin> ImapStream<R> {
4968
/// Creates a new `ImapStream` based on the given `Read`er.
5069
pub fn new(inner: R) -> Self {

src/types/response_data.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
use std::fmt;
2+
13
use byte_pool::Block;
24
use imap_proto::{RequestId, Response};
35

46
rental! {
57
pub mod rents {
68
use super::*;
79

8-
#[rental(debug, covariant)]
10+
#[rental(covariant)]
911
pub struct ResponseData {
1012
raw: Block<'static>,
1113
response: Response<'raw>,
@@ -23,6 +25,15 @@ impl std::cmp::PartialEq for ResponseData {
2325

2426
impl std::cmp::Eq for ResponseData {}
2527

28+
impl fmt::Debug for ResponseData {
29+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
30+
f.debug_struct("ResponseData")
31+
.field("raw", &self.head().len())
32+
.field("response", self.suffix())
33+
.finish()
34+
}
35+
}
36+
2637
impl ResponseData {
2738
pub fn request_id(&self) -> Option<&RequestId> {
2839
match self.suffix() {

0 commit comments

Comments
 (0)