use std::fs;
use std::path::PathBuf;
use super::storage::now_unix_ms;
pub(super) struct TempDir {
pub(super) path: PathBuf,
}
impl TempDir {
pub(super) fn new(scope: &str, name: &str) -> Self {
let path =
std::env::temp_dir().join(format!("sipp-engine-{scope}-{name}-{}", now_unix_ms()));
fs::create_dir_all(&path).expect("temp dir");
Self { path }
}
}
impl Drop for TempDir {
fn drop(&mut self) {
let _ = fs::remove_dir_all(&self.path);
}
}
pub(super) fn strings(values: &[&str]) -> Vec<String> {
values.iter().map(|value| (*value).to_string()).collect()
}
pub(super) fn some_string(value: &str) -> Option<String> {
Some(value.to_string())
}
pub(super) fn gguf_name(id: &str) -> String {
format!("{id}.gguf")
}
pub(super) fn gguf_path(id: &str) -> PathBuf {
PathBuf::from(gguf_name(id))
}