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§
Source§impl Debug for RecordReader
impl Debug for RecordReader
Source§impl StoreReader for RecordReader
impl StoreReader for RecordReader
Source§fn read_cargo_metadata(&mut self) -> Result<String, RecordReadError>
fn read_cargo_metadata(&mut self) -> Result<String, RecordReadError>
Source§fn read_test_list(&mut self) -> Result<TestListSummary, RecordReadError>
fn read_test_list(&mut self) -> Result<TestListSummary, RecordReadError>
Source§fn read_record_opts(&mut self) -> Result<RecordOpts, RecordReadError>
fn read_record_opts(&mut self) -> Result<RecordOpts, RecordReadError>
Source§fn read_rerun_info(&mut self) -> Result<Option<RerunInfo>, RecordReadError>
fn read_rerun_info(&mut self) -> Result<Option<RerunInfo>, RecordReadError>
Source§fn load_dictionaries(&mut self) -> Result<(), RecordReadError>
fn load_dictionaries(&mut self) -> Result<(), RecordReadError>
Source§fn read_output(&mut self, file_name: &str) -> Result<Vec<u8>, RecordReadError>
fn read_output(&mut self, file_name: &str) -> Result<Vec<u8>, RecordReadError>
Source§fn extract_file_to_path(
&mut self,
store_path: &str,
output_path: &Utf8Path,
) -> Result<u64, RecordReadError>
fn extract_file_to_path( &mut self, store_path: &str, output_path: &Utf8Path, ) -> Result<u64, RecordReadError>
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§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 moreSource§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