use std::sync::Arc;
use anyhow::Result;
use crate::context::Context;
use crate::init_options::InitOptions;
pub fn init() -> Result<Arc<Context>> {
init_with_options(InitOptions::new()?)
}
pub fn init_with_options(init_options: InitOptions) -> Result<Arc<Context>> {
Context::new(std::env::args().collect::<Vec<_>>(), init_options)
}
pub fn ok(ctx: Arc<Context>) -> bool {
ctx.is_valid()
}
pub fn shutdown(ctx: Arc<Context>, reason: &str) -> Result<()> {
ctx.shutdown(reason)
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn rclrust_init() -> Result<()> {
let ctx = init()?;
assert!(ok(ctx));
Ok(())
}
}