notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 86e00cd0192f219d76a7ecae424f05f3febd6792
parent 4886f03967fef564c3df7fa133682223e72d2a4d
Author: kernelkind <kernelkind@gmail.com>
Date:   Sat, 22 Nov 2025 20:13:34 -0700

feat(images): new TextureState

Signed-off-by: kernelkind <kernelkind@gmail.com>

Diffstat:
Mcrates/notedeck/src/imgcache.rs | 16++++++++++++++++
Mcrates/notedeck/src/lib.rs | 4++--
2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/crates/notedeck/src/imgcache.rs b/crates/notedeck/src/imgcache.rs @@ -153,6 +153,22 @@ impl<'a> TextureStateOld<'a> { } } +pub enum TextureState<T> { + Pending, + Error(crate::Error), + Loaded(T), +} + +impl<T> std::fmt::Debug for TextureState<T> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Pending => write!(f, "Pending"), + Self::Error(_) => f.debug_tuple("Error").field(&"").finish(), + Self::Loaded(_) => f.debug_tuple("Loaded").field(&"").finish(), + } + } +} + impl<'a> From<&'a mut TextureStateInternal> for TextureStateOld<'a> { fn from(value: &'a mut TextureStateInternal) -> Self { match value { diff --git a/crates/notedeck/src/lib.rs b/crates/notedeck/src/lib.rs @@ -55,8 +55,8 @@ pub use fonts::NamedFontFamily; pub use i18n::{CacheStats, FluentArgs, FluentValue, LanguageIdentifier, Localization}; pub use imgcache::{ get_render_state, Animation, GifState, GifStateMap, ImageFrame, Images, LatestTexture, - LoadableTextureState, MediaCache, MediaCacheType, RenderState, TextureFrame, TextureStateOld, - TexturedImage, TexturesCache, + LoadableTextureState, MediaCache, MediaCacheType, RenderState, TextureFrame, TextureState, + TextureStateOld, TexturedImage, TexturesCache, }; pub use jobs::{ BlurhashParams, Job, JobError, JobIdOld, JobParams, JobParamsOwned, JobPool, JobState,