pub struct Libtest<W, Out: Write = Stdout> { /* private fields */ }libtest only.Expand description
Currently used only to support --format=json option.
§Ordering
This Writer isn’t Normalized by itself, so should be wrapped into a
writer::Normalize, otherwise will produce output Events in a broken
order.
Ideally, we shouldn’t wrap this into a writer::Normalize and leave this
to tools, parsing JSON output. Unfortunately, not all tools can do that (ex.
IntelliJ Rust), so it’s still recommended to wrap this into
writer::Normalize even if it can mess up timing reports.
Implementations§
Source§impl<W: Debug + World> Libtest<W, Stdout>
 
impl<W: Debug + World> Libtest<W, Stdout>
Sourcepub fn stdout() -> Normalize<W, Self>
 
pub fn stdout() -> Normalize<W, Self>
Creates a new Normalized Libtest Writer outputting into the
io::Stdout.
Sourcepub fn or<AnotherWriter: Writer<W>>(
    writer: AnotherWriter,
) -> Or<W, AnotherWriter>
 
pub fn or<AnotherWriter: Writer<W>>( writer: AnotherWriter, ) -> Or<W, AnotherWriter>
Creates a new Writer which uses a Normalized Libtest in case
Cli::format is set to Json, or provided the writer otherwise.
Sourcepub fn or_basic() -> OrBasic<W>
 
pub fn or_basic() -> OrBasic<W>
Creates a new Writer which uses a Normalized Libtest in case
Cli::format is set to Json, or a Normalized
writer::Basic otherwise.
Source§impl<W: Debug + World, Out: Write> Libtest<W, Out>
 
impl<W: Debug + World, Out: Write> Libtest<W, Out>
Sourcepub fn new(output: Out) -> Normalize<W, Self>
 
pub fn new(output: Out) -> Normalize<W, Self>
Creates a new Normalized Libtest Writer outputting into the
provided output.
Theoretically, normalization should be done by the tool that’s consuming
the output og this Writer. But lack of clear specification of the
libtest’s JSON output leads to some tools struggling to
interpret it. So, we recommend using a Normalized Libtest::new()
rather than a non-Normalized Libtest::raw().
Sourcepub const fn raw(output: Out) -> Self
 
pub const fn raw(output: Out) -> Self
Creates a new non-Normalized Libtest Writer outputting into
the provided output.
Theoretically, normalization should be done by the tool that’s consuming
the output og this Writer. But lack of clear specification of the
libtest’s JSON output leads to some tools struggling to
interpret it. So, we recommend using a Normalized Libtest::new()
rather than a non-Normalized Libtest::raw().
Trait Implementations§
Source§impl<W, O> Stats<W> for Libtest<W, O>
 
impl<W, O> Stats<W> for Libtest<W, O>
Source§fn retried_steps(&self) -> usize
 
fn retried_steps(&self) -> usize
Steps.Source§fn parsing_errors(&self) -> usize
 
fn parsing_errors(&self) -> usize
Source§fn hook_errors(&self) -> usize
 
fn hook_errors(&self) -> usize
Scenario hooks.Source§fn execution_has_failed(&self) -> bool
 
fn execution_has_failed(&self) -> bool
impl<W, O: Write> NonTransforming for Libtest<W, O>
Auto Trait Implementations§
impl<W, Out> Freeze for Libtest<W, Out>where
    Out: Freeze,
impl<W, Out = Stdout> !RefUnwindSafe for Libtest<W, Out>
impl<W, Out = Stdout> !Send for Libtest<W, Out>
impl<W, Out = Stdout> !Sync for Libtest<W, Out>
impl<W, Out> Unpin for Libtest<W, Out>where
    Out: Unpin,
impl<W, Out = Stdout> !UnwindSafe for Libtest<W, Out>
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> Ext for T
 
impl<T> Ext for T
Source§fn assert_normalized(self) -> AssertNormalized<T>
 
fn assert_normalized(self) -> AssertNormalized<T>
Source§fn normalized<W>(self) -> Normalize<W, T>
 
fn normalized<W>(self) -> Normalize<W, T>
Source§fn summarized(self) -> Summarize<T>
 
fn summarized(self) -> Summarize<T>
Source§fn fail_on_skipped(self) -> FailOnSkipped<T>
 
fn fail_on_skipped(self) -> FailOnSkipped<T>
Source§fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>
 
fn fail_on_skipped_with<F>(self, f: F) -> FailOnSkipped<T, F>
Source§fn repeat_skipped<W>(self) -> Repeat<W, T>
 
fn repeat_skipped<W>(self) -> Repeat<W, T>
Source§fn repeat_failed<W>(self) -> Repeat<W, T>
 
fn repeat_failed<W>(self) -> Repeat<W, T>
Source§fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>
 
fn repeat_if<W, F>(self, filter: F) -> Repeat<W, T, F>
Writer to re-output filtered events at the end of an
output.Source§fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
    Wr: Writer<W>,
 
fn tee<W, Wr>(self, other: Wr) -> Tee<T, Wr>where
    Wr: Writer<W>,
other Writer to the current one for passing
events to both of them simultaneously.Source§fn discard_arbitrary_writes(self) -> Arbitrary<T>
 
fn discard_arbitrary_writes(self) -> Arbitrary<T>
Writer into a discard::Arbitrary one, providing a
no-op ArbitraryWriter implementation. Read moreSource§fn discard_stats_writes(self) -> Stats<T>
 
fn discard_stats_writes(self) -> Stats<T>
Writer into a discard::Stats one, providing a no-op
StatsWriter implementation returning only 0. Read moreSource§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> ⓘ
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> ⓘ
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