use crate::graphics::{Color, GraphicsElem};
use crate::length::Length;
#[derive(Clone, Debug, PartialEq)]
pub struct Annot {
pub page: usize,
pub rect: (Length, Length, Length, Length),
pub action: AnnotAction,
pub border: Option<(Length, Color)>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AnnotAction {
Uri(String),
GotoName(String),
}
#[derive(Clone, Debug, PartialEq)]
pub struct NamedDest {
pub page: usize, pub name: String,
pub x: Length, pub y: Length,
}
#[derive(Clone, Debug, PartialEq)]
pub struct OutlineEntry {
pub level: i64,
pub text: String,
pub dest_name: String,
pub is_open: bool,
}
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct DocInfo {
pub title: Option<String>,
pub subject: Option<String>,
pub author: Option<String>,
pub keywords: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq)]
pub struct DocExtras {
pub annotations: Vec<Annot>,
pub destinations: Vec<NamedDest>,
pub outline: Vec<OutlineEntry>,
pub page_graphics: Vec<Vec<GraphicsElem>>,
pub doc_info: Option<DocInfo>,
}