use std::collections::HashMap;
use super::model::{Directive, MAX_DIRECTIVE_CHARS};
fn builtin_directives() -> Vec<(&'static str, &'static str)> {
vec![
("focus", include_str!("../builtin_directives/focus.md")),
("foresight", include_str!("../builtin_directives/foresight.md")),
("ccr-handling", include_str!("../builtin_directives/ccr-handling.md")),
("cleanup", include_str!("../builtin_directives/cleanup.md")),
("explore", include_str!("../builtin_directives/explore.md")),
("lazy", include_str!("../builtin_directives/lazy.md")),
("lazy-eval", include_str!("../builtin_directives/lazy-eval.md")),
]
}
pub fn loaded_builtins() -> HashMap<String, Directive> {
let mut directives = HashMap::new();
for (name, content) in builtin_directives() {
let content = if content.len() > MAX_DIRECTIVE_CHARS {
let trunc:String = content.chars().take(MAX_DIRECTIVE_CHARS).collect();
format!("{}…", trunc)
} else {
content.to_string()
};
directives.insert(name.to_string(), Directive { name:name.to_string(), content });
}
directives
}