Skip to main content

TraceWriter

Struct TraceWriter 

Source
pub struct TraceWriter { /* private fields */ }
Expand description

Writer for streaming trace events to a file.

Events are written incrementally, allowing large traces to be written without holding all events in memory. When compression is enabled, events are buffered and compressed in chunks.

§Example

let mut writer = TraceWriter::create("trace.bin")?;
writer.write_metadata(&TraceMetadata::new(42))?;
for event in events {
    writer.write_event(&event)?;
}
writer.finish()?;

Implementations§

Source§

impl TraceWriter

Source

pub fn create(path: impl AsRef<Path>) -> TraceFileResult<Self>

Creates a new trace file for writing with default configuration.

§Errors

Returns an error if the file cannot be created.

Source

pub fn create_with_config( path: impl AsRef<Path>, config: TraceFileConfig, ) -> TraceFileResult<Self>

Creates a new trace file for writing with custom configuration.

§Errors

Returns an error if the file cannot be created.

Source

pub fn write_metadata( &mut self, metadata: &TraceMetadata, ) -> TraceFileResult<()>

Writes the trace metadata (must be called first).

This writes the file header including magic bytes, version, flags, compression mode, and the serialized metadata.

§Errors

Returns an error if writing fails or the writer was already finished.

Source

pub fn write_event(&mut self, event: &ReplayEvent) -> TraceFileResult<()>

Writes a single replay event.

Events are length-prefixed for streaming reads. When compression is enabled, events are buffered and written in compressed chunks.

§Errors

Returns an error if serialization or writing fails.

Source

pub fn finish(self) -> TraceFileResult<()>

Finishes writing the trace file.

This flushes any remaining compressed data, updates the event count in the header, and flushes all data. Must be called to complete the file properly.

§Errors

Returns an error if flushing or seeking fails.

Source

pub fn event_count(&self) -> u64

Returns the number of events written so far.

Trait Implementations§

Source§

impl Drop for TraceWriter

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more