vine-core 0.1.4

Vine Core implement core concepts of vine framework.
Documentation
use log::{trace};

use crate::app::App;
use crate::config::get_config_context;
use crate::context::auto_register_context::get_auto_register_context;
use crate::core::Error;
use crate::logger::init_logger;

pub mod core;
pub mod context;
pub mod app;
pub mod logger;
pub mod config;

pub fn create_app() -> Result<App, Error> {
    let context = get_config_context()?;
    init_logger(&context)?;

    trace!("setup - create default App instance");
    let app = App::default();

    trace!("setup - adding {} to App", &context);
    app.add_context(context);

    let context = get_auto_register_context()?;
    trace!("setup - adding {} to App", &context);
    app.add_context(context);

    Ok(app)
}