use std::path::PathBuf;
pub fn data_dir() -> PathBuf {
if let Ok(p) = std::env::var("BRAIN2QWERTY_DATA_DIR") {
return PathBuf::from(p);
}
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../data")
}
pub fn parity_refs_dir() -> PathBuf {
data_dir().join("parity_refs")
}
pub fn parity_refs_v2_dir() -> PathBuf {
data_dir().join("parity_refs_v2")
}
pub fn parity_refs_v1_dir() -> PathBuf {
data_dir().join("parity_refs_v1")
}
pub fn config_path() -> PathBuf {
data_dir().join("config.yaml")
}
pub fn encoder_weights_path() -> PathBuf {
data_dir().join("encoder.safetensors")
}
pub fn encoder_v2_weights_path() -> PathBuf {
data_dir().join("encoder_v2.safetensors")
}
pub fn encoder_v1_weights_path() -> PathBuf {
data_dir().join("encoder_v1.safetensors")
}
pub fn v1_config_path() -> PathBuf {
data_dir().join("v1_config.yaml")
}
pub fn build_args_path() -> PathBuf {
data_dir().join("build_args.json")
}
pub fn llm_dir() -> PathBuf {
data_dir().join("llm")
}
pub fn llm_tiny_dir() -> PathBuf {
llm_dir().join("tiny")
}
pub fn encoder_weights_available() -> bool {
encoder_weights_path().is_file()
}
pub fn parity_refs_available() -> bool {
parity_refs_dir().join("input_neuros.bin").is_file()
}
pub fn parity_refs_v2_available() -> bool {
parity_refs_v2_dir().join("input_neuros.bin").is_file()
}
pub fn encoder_v2_weights_available() -> bool {
encoder_v2_weights_path().is_file()
}
pub fn parity_refs_v1_available() -> bool {
parity_refs_v1_dir().join("input_neuros.bin").is_file()
}
pub fn encoder_v1_weights_available() -> bool {
encoder_v1_weights_path().is_file()
}