use crate::{PdfiumError, pdfium_types::FPDF_FILEIDTYPE};
#[derive(Copy, Clone, Debug, PartialEq, Default)]
#[repr(i32)]
pub enum PdfiumFormType {
#[default]
None = 0,
AcroForm = 1,
XFAFull = 2,
XFAForeground = 3,
}
impl TryFrom<i32> for PdfiumFormType {
type Error = PdfiumError;
fn try_from(value: i32) -> Result<Self, Self::Error> {
match value {
0 => Ok(PdfiumFormType::None),
1 => Ok(PdfiumFormType::AcroForm),
2 => Ok(PdfiumFormType::XFAFull),
3 => Ok(PdfiumFormType::XFAForeground),
_ => Err(PdfiumError::InvalidEnumValue),
}
}
}
#[derive(Copy, Clone, Debug, PartialEq, Default)]
#[repr(i32)]
pub enum PdfiumPageMode {
#[default]
Unknown = -1,
UseNone = 0,
UseOutlines = 1,
UseThumbs = 2,
UseFullscreen = 3,
UseOC = 4,
UseAttachments = 5,
}
impl TryFrom<i32> for PdfiumPageMode {
type Error = PdfiumError;
fn try_from(value: i32) -> Result<Self, Self::Error> {
match value {
-1 => Ok(PdfiumPageMode::Unknown),
0 => Ok(PdfiumPageMode::UseNone),
1 => Ok(PdfiumPageMode::UseOutlines),
2 => Ok(PdfiumPageMode::UseThumbs),
3 => Ok(PdfiumPageMode::UseFullscreen),
4 => Ok(PdfiumPageMode::UseOC),
5 => Ok(PdfiumPageMode::UseAttachments),
_ => Err(PdfiumError::InvalidEnumValue),
}
}
}
#[derive(Copy, Clone, Debug, PartialEq, Default)]
#[repr(u32)]
pub enum PdfiumFileIdType {
#[default]
Permanent = 0,
Changing = 1,
}
impl From<PdfiumFileIdType> for FPDF_FILEIDTYPE {
fn from(val: PdfiumFileIdType) -> Self {
val as FPDF_FILEIDTYPE
}
}