cliclack_yaml 0.1.1

A YAML-based configuration layer for cliclack interactive CLI prompts
Documentation
use std::path::PathBuf;
use std::cell::RefCell;
use std::thread_local;

thread_local! {
    static TEST_APP_ROOT: RefCell<Option<PathBuf>> = RefCell::new(None);
    static TEST_PROMPT_FOLDER: RefCell<Option<PathBuf>> = RefCell::new(None);
}

pub fn setup_test() {
    TEST_APP_ROOT.with(|r| *r.borrow_mut() = None);
    TEST_PROMPT_FOLDER.with(|r| *r.borrow_mut() = None);
}

pub fn get_test_app_root() -> Option<PathBuf> {
    TEST_APP_ROOT.with(|r| r.borrow().clone())
}

pub fn get_test_prompt_folder() -> Option<PathBuf> {
    TEST_PROMPT_FOLDER.with(|r| r.borrow().clone())
}

pub fn set_test_app_root(path: PathBuf) -> Option<()> {
    TEST_APP_ROOT.with(|r| {
        if r.borrow().is_none() {
            *r.borrow_mut() = Some(path);
            Some(())
        } else {
            None
        }
    })
}

pub fn set_test_prompt_folder(path: PathBuf) -> Option<()> {
    TEST_PROMPT_FOLDER.with(|r| {
        if r.borrow().is_none() {
            *r.borrow_mut() = Some(path);
            Some(())
        } else {
            None
        }
    })
}