pub struct PlanTraceAppender { /* private fields */ }Expand description
A third O_APPEND handle to the session’s trace.jsonl, held by a plan run.
Synchronous where ResourceTraceAppender is async, because crate::plan::execute is: it
runs its ready set on plain threads inside a thread::scope, so there is no runtime to await
on and no await for a lock to be held across. Interleaving with [TraceWriter] and with
the resource plane is safe on the same terms they interleave with each other — one complete
line per write_all, then flush, which O_APPEND makes atomic against the other writers.
Handing one of these to a crate::plan::SchedulerContext is the whole of the opt-in: a
context carrying None opens no file and writes no line.
Implementations§
Auto Trait Implementations§
impl !Freeze for PlanTraceAppender
impl Forget for PlanTraceAppender
impl RefUnwindSafe for PlanTraceAppender
impl Send for PlanTraceAppender
impl Sync for PlanTraceAppender
impl Unpin for PlanTraceAppender
impl UnsafeUnpin for PlanTraceAppender
impl UnwindSafe for PlanTraceAppender
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more