#![forbid(unsafe_code)]
#![deny(dead_code)]
mod batch;
mod db;
mod error;
mod job;
mod registry;
mod runner;
#[doc(hidden)]
pub extern crate async_trait;
#[doc(hidden)]
pub extern crate inventory;
#[doc(hidden)]
pub extern crate serde;
#[doc(hidden)]
pub extern crate sqlx;
#[doc(hidden)]
pub use serde::{de::DeserializeOwned, Deserialize, Serialize};
#[doc(hidden)]
pub use registry::JobVTable;
pub use crate::db::migrate;
pub use crate::error::*;
pub use crate::job::*;
#[cfg(any(test, feature = "test_components"))]
pub use crate::runner::Event;
pub use crate::runner::{Builder, Runner};
pub use coil_proc_macro::*;
#[cfg(test)]
use sqlx::Connection;
#[cfg(test)]
use std::sync::Once;
#[cfg(test)]
static INIT: Once = Once::new();
#[cfg(test)]
pub fn initialize() {
INIT.call_once(|| {
pretty_env_logger::init();
let url = dotenv::var("DATABASE_URL").unwrap();
let mut conn = smol::block_on(sqlx::PgConnection::connect(url.as_str())).unwrap();
smol::block_on(crate::migrate(&mut conn)).unwrap();
});
}