&str
->String
in Diagnostic
This commit is contained in:
parent
8afee51e88
commit
13932f098c
@ -1 +1 @@
|
||||
Subproject commit f1a17032d247d790dc1fc38fa4e33bc53ca7370d
|
||||
Subproject commit 58487121898c8da9c51479f1df4c1055c7df1e6d
|
@ -28,11 +28,11 @@ pub use self::slice_deserializer::*;
|
||||
/// Basic support for tracing events across the execution.
|
||||
pub trait Diagnostic<T: Monad> {
|
||||
/// Specify that the evaluation happens after a specific event.
|
||||
fn after<'a, A>(fa: T::F<'a, A>, event: &'a str) -> T::F<'a, A>;
|
||||
fn after<'a: 'b, 'b, A>(fa: T::F<'a, A>, event: impl 'b + FnOnce() -> String) -> T::F<'a, A>;
|
||||
/// Specify that the evaluation happens before a specific event.
|
||||
fn before<'a, A>(fa: T::F<'a, A>, event: &'a str) -> T::F<'a, A>;
|
||||
fn before<'a: 'b, 'b, A>(fa: T::F<'a, A>, event: impl 'b + FnOnce() -> String) -> T::F<'a, A>;
|
||||
/// Label the evaluation step as a specific named action.
|
||||
fn wrapped<'a, A>(fa: T::F<'a, A>, event: &'a str) -> T::F<'a, A>;
|
||||
fn wrapped<'a: 'b, 'b, A>(fa: T::F<'a, A>, event: impl 'b + FnOnce() -> String) -> T::F<'a, A>;
|
||||
}
|
||||
|
||||
/// Execution context.
|
||||
|
@ -52,7 +52,7 @@ impl<A> WithTrace for A {
|
||||
}
|
||||
|
||||
impl<A> Traced<A> {
|
||||
fn wrapped(self, event: &str) -> Self {
|
||||
fn wrapped(self, event: String) -> Self {
|
||||
Traced {
|
||||
value: self.value,
|
||||
effect: self.effect.wrapped(event),
|
||||
@ -87,15 +87,15 @@ impl<A> Traced<A> {
|
||||
}
|
||||
|
||||
impl Diagnostic<TracedClass> for TracedDiagnostic {
|
||||
fn after<A>(fa: Traced<A>, event: &str) -> Traced<A> {
|
||||
fa.after(TraceBox::event(event))
|
||||
fn after<'a: 'b, 'b, A>(fa: Traced<A>, event: impl FnOnce() -> String) -> Traced<A> {
|
||||
fa.after(TraceBox::event(event()))
|
||||
}
|
||||
|
||||
fn before<A>(fa: Traced<A>, event: &str) -> Traced<A> {
|
||||
fa.before(TraceBox::event(event))
|
||||
fn before<'a: 'b, 'b, A>(fa: Traced<A>, event: impl FnOnce() -> String) -> Traced<A> {
|
||||
fa.before(TraceBox::event(event()))
|
||||
}
|
||||
|
||||
fn wrapped<A>(fa: Traced<A>, event: &str) -> Traced<A> {
|
||||
fa.wrapped(event)
|
||||
fn wrapped<'a: 'b, 'b, A>(fa: Traced<A>, event: impl FnOnce() -> String) -> Traced<A> {
|
||||
fa.wrapped(event())
|
||||
}
|
||||
}
|
||||
|
@ -146,13 +146,13 @@ impl TraceBox {
|
||||
Trace::InvolvesOneResolution.into()
|
||||
}
|
||||
|
||||
pub fn event(event: &str) -> Self {
|
||||
Trace::Event(event.into()).into()
|
||||
pub fn event(event: String) -> Self {
|
||||
Trace::Event(event).into()
|
||||
}
|
||||
|
||||
pub fn wrapped(self, event: &str) -> Self {
|
||||
pub fn wrapped(self, event: String) -> Self {
|
||||
Trace::Wrapped {
|
||||
name: event.into(),
|
||||
name: event,
|
||||
trace: self,
|
||||
}
|
||||
.into()
|
||||
|
@ -13,15 +13,15 @@ use crate::std::typeless::*;
|
||||
pub struct NoDiagnostic;
|
||||
|
||||
impl<T: Monad> Diagnostic<T> for NoDiagnostic {
|
||||
fn after<'a, A>(fa: T::F<'a, A>, _event: &'a str) -> T::F<'a, A> {
|
||||
fn after<'a: 'b, 'b, A>(fa: T::F<'a, A>, _event: impl FnOnce() -> String) -> T::F<'a, A> {
|
||||
fa
|
||||
}
|
||||
|
||||
fn before<'a, A>(fa: T::F<'a, A>, _event: &'a str) -> T::F<'a, A> {
|
||||
fn before<'a: 'b, 'b, A>(fa: T::F<'a, A>, _event: impl FnOnce() -> String) -> T::F<'a, A> {
|
||||
fa
|
||||
}
|
||||
|
||||
fn wrapped<'a, A>(fa: T::F<'a, A>, _event: &'a str) -> T::F<'a, A> {
|
||||
fn wrapped<'a: 'b, 'b, A>(fa: T::F<'a, A>, _event: impl FnOnce() -> String) -> T::F<'a, A> {
|
||||
fa
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user