Struct term_transcript::Transcript
source · pub struct Transcript<Out: TermOutput = Captured> { /* private fields */ }
Expand description
Transcript of a user interacting with the terminal.
Implementations§
source§impl Transcript
impl Transcript
sourcepub fn from_inputs<Cmd: SpawnShell>(
options: &mut ShellOptions<Cmd>,
inputs: impl IntoIterator<Item = UserInput>,
) -> Result<Self>
pub fn from_inputs<Cmd: SpawnShell>( options: &mut ShellOptions<Cmd>, inputs: impl IntoIterator<Item = UserInput>, ) -> Result<Self>
Constructs a transcript from the sequence of given user input
s.
The inputs are executed in the shell specified in options
. A single shell is shared
among all commands.
§Errors
- Returns an error if spawning the shell or any operations with it fail (such as reading stdout / stderr, or writing commands to stdin), or if the shell exits before all commands are executed.
sourcepub fn capture_output(
&mut self,
input: UserInput,
command: &mut Command,
) -> Result<&mut Self>
pub fn capture_output( &mut self, input: UserInput, command: &mut Command, ) -> Result<&mut Self>
Captures stdout / stderr of the provided command
and adds it to Self::interactions()
.
The command
is spawned with the closed stdin. This method blocks until the command exits.
The method succeeds regardless of the exit status of the command
.
§Errors
- Returns an error if spawning the
command
or any operations with it fail (such as reading stdout / stderr).
source§impl Transcript<Parsed>
impl Transcript<Parsed>
sourcepub fn from_svg<R: BufRead>(reader: R) -> Result<Self, ParseError>
Available on crate feature test
only.
pub fn from_svg<R: BufRead>(reader: R) -> Result<Self, ParseError>
test
only.Parses a transcript from the provided reader
, which should point to an SVG XML tree
produced by Template::render()
(possibly within a larger document).
§Errors
- Returns an error if the input cannot be parsed, usually because it was not produced
by
Template::render()
.
source§impl<Out: TermOutput> Transcript<Out>
impl<Out: TermOutput> Transcript<Out>
sourcepub fn interactions(&self) -> &[Interaction<Out>]
pub fn interactions(&self) -> &[Interaction<Out>]
Returns interactions in this transcript.
sourcepub fn interactions_mut(&mut self) -> &mut [Interaction<Out>]
pub fn interactions_mut(&mut self) -> &mut [Interaction<Out>]
Returns a mutable reference to interactions in this transcript.
source§impl Transcript
impl Transcript
sourcepub fn add_existing_interaction(
&mut self,
interaction: Interaction,
) -> &mut Self
pub fn add_existing_interaction( &mut self, interaction: Interaction, ) -> &mut Self
Manually adds a new interaction to the end of this transcript.
This method allows capturing interactions that are difficult or impossible to capture
using more high-level methods: Self::from_inputs()
or Self::capture_output()
.
The resulting transcript will render just fine, but there could be issues
with testing it.
Trait Implementations§
source§impl<Out: Clone + TermOutput> Clone for Transcript<Out>
impl<Out: Clone + TermOutput> Clone for Transcript<Out>
source§fn clone(&self) -> Transcript<Out>
fn clone(&self) -> Transcript<Out>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<Out: Debug + TermOutput> Debug for Transcript<Out>
impl<Out: Debug + TermOutput> Debug for Transcript<Out>
source§impl<Out: TermOutput> Default for Transcript<Out>
impl<Out: TermOutput> Default for Transcript<Out>
Auto Trait Implementations§
impl<Out> Freeze for Transcript<Out>
impl<Out> RefUnwindSafe for Transcript<Out>where
Out: RefUnwindSafe,
impl<Out> Send for Transcript<Out>
impl<Out> Sync for Transcript<Out>
impl<Out> Unpin for Transcript<Out>where
Out: Unpin,
impl<Out> UnwindSafe for Transcript<Out>where
Out: UnwindSafe,
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute
] value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
[Quirk
] value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition
] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);