1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)]
8pub enum Kind {
9 Video(Video),
10}
11
12#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)]
14pub struct Video {
15 pub len: f64,
17}
18
19#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)]
21pub struct Blob {
22 pub filename: String,
24 pub preview: String,
26 pub title: String,
28 pub date: Option<String>,
31 pub size: usize,
33 pub kind: Kind,
35}
36
37#[derive(Debug, Deserialize, Serialize, PartialEq, Clone)]
39pub struct Blobs {
40 pub blobs: Vec<Blob>,
41}
42
43impl Kind {
44 pub fn as_video(&self) -> Option<&Video> {
46 match self {
47 Self::Video(v) => Some(v),
48 }
49 }
50}