pub trait Source: Send + Sync {
Show 13 methods
// Required methods
fn len(&self) -> usize;
fn bytes(&self, range: Range<usize>) -> Cow<'_, [u8]>;
fn is_complete(&self) -> bool;
// Provided methods
fn is_empty(&self) -> bool { ... }
fn pump(&self) { ... }
fn revision(&self) -> u64 { ... }
fn prettify_mode(&self) -> Option<PrettifyMode> { ... }
fn prettify_label(&self) -> Option<String> { ... }
fn set_prettify_mode(&self, _mode: PrettifyMode) { ... }
fn toggle_prettify(&self) { ... }
fn redetect_prettify(&self) { ... }
fn take_rotated(&self) -> bool { ... }
fn path(&self) -> Option<&Path> { ... }
}Required Methods§
fn len(&self) -> usize
fn bytes(&self, range: Range<usize>) -> Cow<'_, [u8]>
fn is_complete(&self) -> bool
Provided Methods§
fn is_empty(&self) -> bool
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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).
Sourcefn 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.
Sourcefn 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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".