Skip to main content

ps_promise/implementations/
debug.rs

1use std::fmt::Debug;
2
3use crate::{Promise, PromiseRejection};
4
5impl<T, E> Debug for Promise<T, E>
6where
7    T: Unpin + Debug,
8    E: PromiseRejection + Debug,
9{
10    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11        let mut fmt = f.debug_struct("Promise");
12
13        match self {
14            Self::Pending(_) => fmt.field("state", &"Pending"),
15            Self::Resolved(value) => fmt.field("resolved", value),
16            Self::Rejected(err) => fmt.field("rejected", err),
17            Self::Consumed => fmt.field("state", &"Consumed"),
18        };
19
20        fmt.finish()
21    }
22}