Display for Trace
This commit is contained in:
parent
509241a682
commit
a28ee0779f
@ -1,4 +1,5 @@
|
|||||||
use std::{
|
use std::{
|
||||||
|
fmt::Display,
|
||||||
marker::PhantomData,
|
marker::PhantomData,
|
||||||
pin::Pin,
|
pin::Pin,
|
||||||
task::{Context, Poll},
|
task::{Context, Poll},
|
||||||
@ -383,9 +384,26 @@ pub trait AsTrace {
|
|||||||
|
|
||||||
pub enum Trace<'trace> {
|
pub enum Trace<'trace> {
|
||||||
Pure,
|
Pure,
|
||||||
Flatten(&'trace dyn AsTrace, &'trace dyn AsTrace),
|
|
||||||
Map(&'trace dyn AsTrace),
|
Map(&'trace dyn AsTrace),
|
||||||
Join(&'trace dyn AsTrace, &'trace dyn AsTrace),
|
Join(&'trace dyn AsTrace, &'trace dyn AsTrace),
|
||||||
|
Flatten(&'trace dyn AsTrace, &'trace dyn AsTrace),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for &dyn AsTrace {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
write!(f, "{}", self.as_trace())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for Trace<'_> {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
match self {
|
||||||
|
Self::Pure => write!(f, "."),
|
||||||
|
Self::Map(a) => write!(f, "{a}*"),
|
||||||
|
Self::Join(a, b) => write!(f, "({a},{b})"),
|
||||||
|
Self::Flatten(o, i) => write!(f, "{{{o};{i}}}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AsTrace for TracePure {
|
impl AsTrace for TracePure {
|
||||||
|
Loading…
Reference in New Issue
Block a user