pub enum ImageProtocol {
Kitty,
Iterm2,
Sixel,
Halfblocks,
None,
}Expand description
The mechanism used to draw pixel previews in the terminal.
Variants§
Kitty
Kitty graphics protocol — Kitty, Ghostty, Konsole, WezTerm.
Iterm2
iTerm2 inline images — iTerm2, WezTerm, mintty, Tabby, Hyper, VS Code.
Sixel
Sixel graphics — mlterm, foot, xterm built with sixel support.
Halfblocks
Unicode half-blocks. Needs no terminal support, so it is the floor rather than a failure case.
None
Image previews disabled; show metadata only.
Implementations§
Source§impl ImageProtocol
impl ImageProtocol
Sourcepub fn label(self) -> &'static str
pub fn label(self) -> &'static str
The name used for this protocol in config files and in the preview caption.
Sourcepub fn parse(value: &str) -> Option<ImageProtocol>
pub fn parse(value: &str) -> Option<ImageProtocol>
Parses a [preview] image_protocol value.
Returns None for an unrecognised name so the config layer can report
it. "auto" is not handled here — it is the absence of an override.
Sourcepub fn draws_over_cells(self) -> bool
pub fn draws_over_cells(self) -> bool
Whether the terminal, rather than ratatui’s cells, draws the picture.
True of every protocol but half-blocks, which is ordinary coloured text.
Such a picture covers cells ratatui is told to leave alone, and only the
terminal knows how many of them it really reached — see
ImagePreview::placed_at.
Trait Implementations§
Source§impl Clone for ImageProtocol
impl Clone for ImageProtocol
impl Copy for ImageProtocol
Source§impl Debug for ImageProtocol
impl Debug for ImageProtocol
impl Eq for ImageProtocol
Source§impl PartialEq for ImageProtocol
impl PartialEq for ImageProtocol
impl StructuralPartialEq for ImageProtocol
Auto Trait Implementations§
impl Freeze for ImageProtocol
impl RefUnwindSafe for ImageProtocol
impl Send for ImageProtocol
impl Sync for ImageProtocol
impl Unpin for ImageProtocol
impl UnsafeUnpin for ImageProtocol
impl UnwindSafe for ImageProtocol
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more