notedeck

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

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:
Acrates/notedeck/src/jobs/media.rs | 24++++++++++++++++++++++++
Mcrates/notedeck/src/jobs/mod.rs | 2++
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};