pub struct PipeWatcher { /* private fields */ }Expand description
Watches a pipe-pane log file and extracts events from new content.
Uses polling (seek to last position, read new bytes) which is simple and portable. The polling interval is configurable.
Implementations§
Source§impl PipeWatcher
impl PipeWatcher
Sourcepub fn new(path: &Path, buffer: EventBuffer) -> Self
pub fn new(path: &Path, buffer: EventBuffer) -> Self
Create a new pipe watcher for the given log file.
Sourcepub fn new_with_position(
path: &Path,
buffer: EventBuffer,
position: u64,
) -> Self
pub fn new_with_position( path: &Path, buffer: EventBuffer, position: u64, ) -> Self
Create a new pipe watcher starting from a specific byte offset.
Offsets beyond EOF are clamped during polling.
Sourcepub fn poll(&mut self) -> Result<usize>
pub fn poll(&mut self) -> Result<usize>
Poll for new content in the log file and extract events.
Returns the number of new events extracted. Call this periodically from the supervisor loop.
Sourcepub fn checkpoint_offset(&self) -> u64
pub fn checkpoint_offset(&self) -> u64
Resume-safe checkpoint offset.
This rewinds by the currently buffered partial line bytes so a resumed watcher can re-read any incomplete line safely.
Auto Trait Implementations§
impl Freeze for PipeWatcher
impl RefUnwindSafe for PipeWatcher
impl Send for PipeWatcher
impl Sync for PipeWatcher
impl Unpin for PipeWatcher
impl UnsafeUnpin for PipeWatcher
impl UnwindSafe for PipeWatcher
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.