#![allow(clippy::too_many_arguments, clippy::unused_async)]

use rustler::{Encoder, LocalPid, NifResult, OwnedEnv, ResourceArc, types::atom::Atom};
use rustler::Error as NifError;
use std::collections::HashMap;
use std::sync::Arc;
use std::sync::atomic::{AtomicU64, Ordering};
use std::sync::{Mutex, OnceLock};
use {{ core_import }}::*;

/// Atom constants used by the service NIFs.
mod atoms {
    rustler::atoms! {
        ok,
        error,
        trait_call,
    }
}

static REPLY_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
