pub mod file;
pub mod utils;
pub mod vpk;
pub use file::VPKFile;
pub use vpk::VPK;
use anyhow::Result;
pub fn open<P: AsRef<std::path::Path>>(path: P) -> Result<VPK> {
VPK::open(path)
}
pub fn from_directory<P: AsRef<std::path::Path>>(path: P) -> Result<VPK> {
VPK::from_directory(path)
}
#[cfg(test)]
mod tests {
use super::*;
use std::fs;
use tempfile::TempDir;
#[test]
fn test_create_and_read_vpk() -> Result<()> {
let temp_dir = TempDir::new()?;
let src_dir = temp_dir.path().join("source");
let vpk_path = temp_dir.path().join("test.vpk");
fs::create_dir_all(&src_dir)?;
fs::write(src_dir.join("test.txt"), b"Hello, World!")?;
let vpk = from_directory(&src_dir)?;
vpk.save(&vpk_path)?;
let vpk = open(&vpk_path)?;
assert!(vpk.contains("test.txt"));
Ok(())
}
}