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 inputs.
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
commandor 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, LocatedParseError>
Available on crate feature test only.
pub fn from_svg<R: BufRead>(reader: R) -> Result<Self, LocatedParseError>
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.
Sourcepub fn add_interaction(
&mut self,
input: impl Into<UserInput>,
output: impl Into<String>,
) -> &mut Self
pub fn add_interaction( &mut self, input: impl Into<UserInput>, output: impl Into<String>, ) -> &mut Self
Manually adds a new interaction to the end of this transcript.
This is a shortcut for calling Self::add_existing_interaction().
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,
§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);