pub trait Source: Send + Sync {
// 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) { ... }
}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.