6 个版本 (3 个重大更新)

0.4.0 2019 年 5 月 3 日
0.3.1 2019 年 5 月 3 日
0.2.1 2019 年 5 月 2 日
0.1.0 2019 年 5 月 1 日

#20 in #pdf-document

每月 31 次下载

0BSD 许可证

54KB
495 代码行数(不含注释)

Rust 的 Zathura 插件 API 包装器

crates.io docs.rs Build Status

该软件包将 Zathura 的插件 API 包装在内存安全和类型安全的 Rust 接口中,并允许使用 Rust 编写 Zathura 插件。

请参考变更日志了解最近版本中发生了哪些变化。

用法

在您的 Cargo.toml 中添加条目

[dependencies]
zathura-plugin = "0.4.0"

请参阅API 文档了解如何使用该软件包的功能。


lib.rs:

Rust 对 Zathura 插件 API 的包装,允许在 Rust 中开发插件。

此库包装了插件接口,并公开了 ZathuraPlugin 特性和 plugin_entry! 宏,作为实现 Rust 插件的主要方式。

示例

struct PluginType {}

impl ZathuraPlugin for PluginType {
    type DocumentData = ();
    type PageData = ();

    fn document_open(doc: DocumentRef<'_>) -> Result<DocumentInfo<Self>, PluginError> {
        unimplemented!()
    }

    fn page_init(page: PageRef<'_>, doc_data: &mut ()) -> Result<PageInfo<Self>, PluginError> {
        unimplemented!()
    }

    fn page_render(
        page: PageRef<'_>,
        doc_data: &mut Self::DocumentData,
        page_data: &mut Self::PageData,
        cairo: &mut cairo::Context,
        printing: bool,
    ) -> Result<(), PluginError> {
        unimplemented!()
    }
}

plugin_entry!("MyPlugin", PluginType, ["text/plain", "application/pdf"]);

依赖项

~0.5–3MB
~58K SLoC