use super::*; mod backend; mod registry; pub(crate) use self::backend::{FileVideoTaskStore, InMemoryVideoTaskStore}; use self::registry::VideoTaskRegistry; pub(super) trait VideoTaskStore: std::fmt::Debug + Send + Sync { fn insert(&self, snapshot: LocalVideoTaskSnapshot); fn read_openai(&self, task_id: &str) -> Option; fn read_gemini(&self, short_id: &str) -> Option; fn clone_openai(&self, task_id: &str) -> Option; fn clone_gemini(&self, short_id: &str) -> Option; #[cfg(test)] fn list_active_snapshots(&self, limit: usize) -> Vec; fn apply_mutation(&self, mutation: LocalVideoTaskRegistryMutation); fn project_openai(&self, task_id: &str, provider_body: &Map) -> bool; fn project_gemini(&self, short_id: &str, provider_body: &Map) -> bool; }