pub mod context;
pub mod error;
pub mod image;
pub mod pipeline;
pub mod signal;
pub mod types;
pub mod workspace;
pub(crate) mod utility;
#[cfg(feature = "testing")]
pub mod testing;
pub use context::StreamContext;
pub use error::{Error, Result};
pub use image::{
AC4, AlphaIgnoredRgba, C1, C2, C3, C4, ChannelLayout, Channels2, Gray, Image, ImageView,
ImageViewMut, MaskView, MaskViewMut, Rgb, Rgba, SupportedImage,
};
pub use pipeline::{ImageBacking, ImagePipeline, SignalBacking, SignalPipeline, Workspace};
pub use signal::{Signal, SignalView, SignalViewMut, SupportedSignal};
use std::ptr;
use singe_npp_sys as sys;
pub fn version() -> Result<Version> {
let raw = unsafe { sys::nppGetLibVersion() };
if raw.is_null() {
return Err(Error::NullHandle);
}
let raw = unsafe { ptr::read(raw) };
Ok(Version {
major: raw.major,
minor: raw.minor,
build: raw.build,
})
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Version {
pub major: i32,
pub minor: i32,
pub build: i32,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() -> Result<()> {
let version = version()?;
assert_ne!(version.major, 0);
Ok(())
}
}