commit f3a3695b80630e357f339d5804d932dec8e89bce
parent 4e3ca159f42b3095fb12a356354d39df1fc0f548
Author: kernelkind <kernelkind@gmail.com>
Date: Sat, 22 Nov 2025 17:53:53 -0700
feat(jobs-media): basic media jobs structs
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/crates/notedeck/src/jobs/media.rs b/crates/notedeck/src/jobs/media.rs
@@ -0,0 +1,24 @@
+use std::sync::mpsc::Sender;
+
+use egui::TextureHandle;
+
+use crate::jobs::JobCache;
+use crate::{Animation, Error};
+
+use crate::jobs::types::JobPackage;
+
+pub type MediaJobs = JobCache<MediaJobKind, MediaJobResult>;
+pub type MediaJobSender = Sender<JobPackage<MediaJobKind, MediaJobResult>>;
+
+#[derive(Debug, PartialEq, Eq, Clone, Hash)]
+pub enum MediaJobKind {
+ Blurhash,
+ StaticImg,
+ AnimatedImg,
+}
+
+pub enum MediaJobResult {
+ StaticImg(Result<TextureHandle, Error>),
+ Blurhash(Result<TextureHandle, Error>),
+ Animation(Result<Animation, Error>),
+}
diff --git a/crates/notedeck/src/jobs/mod.rs b/crates/notedeck/src/jobs/mod.rs
@@ -1,6 +1,7 @@
mod cache;
mod cache_old;
mod job_pool;
+mod media;
pub(crate) mod types;
pub use crate::jobs::types::{
@@ -11,3 +12,4 @@ pub use cache_old::{
BlurhashParams, Job, JobError, JobIdOld, JobParams, JobParamsOwned, JobState, JobsCacheOld,
};
pub use job_pool::JobPool;
+pub use media::{MediaJobKind, MediaJobResult, MediaJobSender, MediaJobs};