Files
file-srv-gui-v3/src/types.rs
2026-03-19 01:38:26 -04:00

51 lines
1.1 KiB
Rust

use serde::Deserialize;
use tokio::sync::mpsc;
#[derive(Debug, Clone, Deserialize)]
pub struct Root {
pub results: Vec<FileEntry>,
pub metadata: Metadata,
}
#[derive(Debug, Clone, Deserialize)]
pub struct FileEntry {
pub name: String,
pub ext: String,
#[allow(dead_code)]
pub path: String,
pub url: String,
pub size: i64,
pub preview: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Metadata {
pub page: usize,
pub total_pages: usize,
pub page_size: usize
}
pub struct SearchContext {
pub is_searching: bool,
pub search_rx: Option<mpsc::Receiver<Result<(Vec<FileEntry>, Metadata), String>>>,
pub search_results: Vec<FileEntry>,
pub page: usize,
pub per_page : usize,
pub total_pages: usize,
pub total_results: usize,
}
impl Default for SearchContext {
fn default() -> Self {
SearchContext {
is_searching: false,
search_rx: None,
search_results: vec![],
page: 1,
per_page: 25,
total_pages: 0,
total_results: 0,
}
}
}