pub struct RecordReader { /* private fields */ }Expand description
Reader for a recorded test run.
Provides access to the metadata and events stored during a test run. The archive is opened lazily when methods are called.
Implementations§
Source§impl RecordReader
impl RecordReader
Sourcepub fn open(run_dir: &Utf8Path) -> Result<Self, RecordReadError>
pub fn open(run_dir: &Utf8Path) -> Result<Self, RecordReadError>
Opens a recorded run from its directory.
The directory should contain store.zip and run.log.zst.
Sourcepub fn read_cargo_metadata(&mut self) -> Result<String, RecordReadError>
pub fn read_cargo_metadata(&mut self) -> Result<String, RecordReadError>
Returns the cargo metadata JSON from the archive.
Sourcepub fn read_test_list(&mut self) -> Result<TestListSummary, RecordReadError>
pub fn read_test_list(&mut self) -> Result<TestListSummary, RecordReadError>
Returns the test list from the archive.
Sourcepub fn read_record_opts(&mut self) -> Result<RecordOpts, RecordReadError>
pub fn read_record_opts(&mut self) -> Result<RecordOpts, RecordReadError>
Returns the record options from the archive.
Sourcepub fn read_rerun_info(&mut self) -> Result<Option<RerunInfo>, RecordReadError>
pub fn read_rerun_info(&mut self) -> Result<Option<RerunInfo>, RecordReadError>
Returns the rerun info from the archive, if this is a rerun.
Returns Ok(None) if this run is not a rerun (the file doesn’t exist).
Returns Err if the file exists but cannot be read or parsed.
Sourcepub fn load_dictionaries(&mut self) -> Result<(), RecordReadError>
pub fn load_dictionaries(&mut self) -> Result<(), RecordReadError>
Loads the dictionaries from the archive.
This must be called before reading output files. The dictionaries are used for decompressing test output.
Note: The store format version is checked before opening the archive,
using the store_format_version field in runs.json.zst. This method
assumes the version has already been validated.
Sourcepub fn events(&self) -> Result<RecordEventIter, RecordReadError>
pub fn events(&self) -> Result<RecordEventIter, RecordReadError>
Returns an iterator over events in the run log.
Events are read one at a time from the zstd-compressed JSON Lines file.
Sourcepub fn read_output(
&mut self,
file_name: &str,
) -> Result<Vec<u8>, RecordReadError>
pub fn read_output( &mut self, file_name: &str, ) -> Result<Vec<u8>, RecordReadError>
Reads output for a specific file from the archive.
The file_name should be the value from ZipStoreOutput::file_name,
e.g., “test-abc123-1-stdout”.
The OutputFileName type ensures that
file names are validated during deserialization, preventing path traversal.
§Panics
Panics if load_dictionaries has not been called first.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RecordReader
impl RefUnwindSafe for RecordReader
impl Send for RecordReader
impl Sync for RecordReader
impl Unpin for RecordReader
impl UnwindSafe for RecordReader
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> 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§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more