Files
zathura-typst-plugin/src/zathura.rs

48 lines
1.2 KiB
Rust

#![allow(warnings)]
pub use cairo::ffi::*;
use typst::layout::{Abs, Point, Rect};
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
unsafe impl Sync for zathura_plugin_definition_s {}
pub type zathura_plugin_error_e = ZathuraResult;
#[repr(u32)]
pub enum ZathuraResult {
/// No error occurred
OK = 0,
/// An unknown error occurred
Unknown = 1,
/// Out of memory
OutOfMemory = 2,
/// The called function has not been implemented
NotImplemented = 3,
/// Invalid arguments have been passed
InvalidArguments = 4,
/// The provided password is invalid
InvalidPassword = 5,
}
impl From<zathura_rectangle_s> for Rect {
fn from(rect: zathura_rectangle_s) -> Self {
fn min(a: f64, b: f64) -> f64 {
if a < b { a } else { b }
}
fn max(a: f64, b: f64) -> f64 {
if a > b { a } else { b }
}
Rect::new(
Point::new(
Abs::pt(min(rect.x1, rect.x2)),
Abs::pt(min(rect.y1, rect.y2)),
),
Point::new(
Abs::pt(max(rect.x1, rect.x2)),
Abs::pt(max(rect.y1, rect.y2)),
),
)
}
}