use anyhow::Result;
use async_trait::async_trait;
use chrono::{DateTime, Utc};
use std::path::PathBuf;
use super::DownloadOptions;
use crate::config::Config;
#[derive(Debug)]
#[allow(dead_code)]
pub struct Wallpaper {
pub file_path: PathBuf,
pub source: String,
pub downloaded_at: DateTime<Utc>,
}
#[async_trait]
pub trait WallpaperDownloader {
async fn download(&self, config: &Config, query: &[String], opts: &DownloadOptions) -> Result<Wallpaper>;
fn source_name(&self) -> &'static str;
}