graphicsmagick 0.6.4

GraphicsMagick binding for Rust.
Documentation
use graphicsmagick_sys::InitializeMagick;
use std::{ptr::null, sync::Once};

static HAS_INITIALIZED: Once = Once::new();

/// Wrapper of `graphicsmagick_sys::InitializeMagick`, call it before any `graphicsmagick` action.
pub fn initialize() {
    HAS_INITIALIZED.call_once(|| unsafe {
        InitializeMagick(null());
    });
}

/// Check if [`initialize`] has called.
#[inline]
pub fn has_initialized() -> bool {
    HAS_INITIALIZED.is_completed()
}

#[inline]
pub(crate) fn assert_initialized() {
    assert!(
        has_initialized(),
        "You have to call `graphicsmagick::initialize` first of all"
    )
}