pub struct LiveFileSource { /* private fields */ }Expand description
A file source that watches for whole-file rewrites. Unlike FileSource
(which only picks up appended bytes via a streaming handle), LiveFileSource
re-reads the entire file when its (mtime, size, ino) signature changes,
swaps the buffer in place, and bumps a revision counter so callers know to
rebuild any per-line state. Intended for source-file-sized inputs being
rewritten by an editor or AI agent.
Implementations§
Trait Implementations§
Source§impl Debug for LiveFileSource
impl Debug for LiveFileSource
Source§impl Source for LiveFileSource
impl Source for LiveFileSource
Source§fn is_complete(&self) -> bool
fn is_complete(&self) -> bool
Live sources are never “complete” — the file may be rewritten at any
time. The status line picks this up as the + suffix on totals.
fn len(&self) -> usize
fn bytes(&self, range: Range<usize>) -> Cow<'_, [u8]>
Source§fn pump(&self)
fn pump(&self)
Read any new bytes that have become available since the last call.
Default no-op for static sources. Streaming sources override.
Source§fn revision(&self) -> u64
fn revision(&self) -> u64
Monotonic counter that bumps whenever the source’s content has been
replaced wholesale (as opposed to merely appended to). Append-style
sources keep this at 0;
LiveFileSource increments it on each detected
rewrite so the event loop knows to rebuild the line index instead of
just folding in new bytes.fn is_empty(&self) -> bool
Source§fn prettify_mode(&self) -> Option<PrettifyMode>
fn prettify_mode(&self) -> Option<PrettifyMode>
Current prettify mode if this source has a
TransformingSource wrapper.
None means the source is not capable of prettification (e.g. a plain
FileSource). Some(Off) means wrapped but currently raw.Source§fn prettify_label(&self) -> Option<String>
fn prettify_label(&self) -> Option<String>
Status-line label for the active prettify state, e.g.
"json" or
"json:err". None when there’s no wrapper or the mode is Off
without an error.Source§fn set_prettify_mode(&self, _mode: PrettifyMode)
fn set_prettify_mode(&self, _mode: PrettifyMode)
Switch to a specific prettify mode. No-op for sources without a wrapper.
Bumps
revision() so callers know to rebuild the line index.Source§fn toggle_prettify(&self)
fn toggle_prettify(&self)
Flip between the current mode and the last active (non-Off) mode.
No-op if the source is not wrapped, or if it has never had an active
mode (i.e. only ever been raw).
Source§fn redetect_prettify(&self)
fn redetect_prettify(&self)
Re-run byte-based content detection and apply the result. Used by the
interactive
-Pa (“auto”) sub-command. No-op without a wrapper.Source§fn take_rotated(&self) -> bool
fn take_rotated(&self) -> bool
Returns true once when the source detected that its backing file
was rotated or truncated. Append-style sources always return false.
FileSource overrides this and consumes the flag on each call so
the app loop only reacts once per event.Auto Trait Implementations§
impl !Freeze for LiveFileSource
impl RefUnwindSafe for LiveFileSource
impl Send for LiveFileSource
impl Sync for LiveFileSource
impl Unpin for LiveFileSource
impl UnsafeUnpin for LiveFileSource
impl UnwindSafe for LiveFileSource
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