Skip to main content

metadata/
types.rs

1//! Plain structs returned by metadata readers (mapped into `output::FileRecord` by `engine`).
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Default)]
5pub struct ExifMeta {
6    pub camera: Option<String>,
7    pub lens: Option<String>,
8    pub gps_lat: Option<f64>,
9    pub gps_lon: Option<f64>,
10    pub extra: HashMap<String, serde_json::Value>,
11}
12
13#[derive(Debug, Clone, Default)]
14pub struct AudioMeta {
15    pub artist: Option<String>,
16    pub title: Option<String>,
17    pub album: Option<String>,
18}
19
20#[derive(Debug, Clone, Default)]
21pub struct PdfMeta {
22    pub page_count: Option<u32>,
23    pub author: Option<String>,
24    pub title: Option<String>,
25}
26
27#[derive(Debug, Clone, Default)]
28pub struct DocxMeta {
29    pub creator: Option<String>,
30    pub last_modified_by: Option<String>,
31    pub revision: Option<String>,
32}
33
34#[derive(Debug, Clone, Default)]
35pub struct VideoMeta {
36    pub codec_name: Option<String>,
37    pub width: Option<u32>,
38    pub height: Option<u32>,
39    pub duration_secs: Option<f64>,
40}