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:
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,