diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Cargo.lock | 7 | ||||
-rw-r--r-- | Cargo.toml | 6 | ||||
-rw-r--r-- | src/lib.rs | 37 |
4 files changed, 51 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..9236ccc --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "r_lib" +version = "0.0.1" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..eb9cc17 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "r_lib" +version = "0.0.1" +edition = "2024" + +[dependencies] diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..565f519 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,37 @@ +use std::os::raw::{c_char, c_void}; + +/// # TIFF Warning Handler Definition +pub type TIFFWarningHandler = Option<unsafe extern "C" fn(module: *const c_char, fmt: *const c_char, ap: *mut c_void)>; + +/// # TIFF Ignore Warnings Handle +unsafe extern "C" fn tiff_ignore_warning_handle(_module: *const c_char, _fmt: *const c_char, _ap: *mut std::ffi::c_void) { + // Do nothing +} + +#[link(name = "tiff")] +unsafe extern "C" { + pub fn TIFFSetWarningHandler(handler: TIFFWarningHandler) -> TIFFWarningHandler; +} + +/// # Ignore TIFF Warnings +pub fn tiff_ignore_warnings() { + unsafe { + let _ = TIFFSetWarningHandler(Some(tiff_ignore_warning_handle)); + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + assert_eq!(0, 0); + } + + #[test] + fn ignore_warning_test() { + tiff_ignore_warnings(); + assert_eq!(1, 1); + } +} |