blob: 8ba3a88da2b4986256089f9c336994e0ea81a68b [file] [log] [blame]
#![allow(dead_code)]
pub use tame_index::{IndexKrate, Path, PathBuf};
pub struct TempDir {
pub td: tempfile::TempDir,
}
impl TempDir {
#[inline]
pub fn path(&self) -> &Path {
Path::from_path(self.td.path()).unwrap()
}
}
impl Default for TempDir {
#[inline]
fn default() -> Self {
Self {
td: tempfile::TempDir::new_in(env!("CARGO_TARGET_TMPDIR")).unwrap(),
}
}
}
impl AsRef<Path> for TempDir {
#[inline]
fn as_ref(&self) -> &Path {
self.path()
}
}
impl AsRef<std::path::Path> for TempDir {
#[inline]
fn as_ref(&self) -> &std::path::Path {
self.td.path()
}
}
impl<'td> From<&'td TempDir> for PathBuf {
fn from(td: &'td TempDir) -> Self {
td.path().to_owned()
}
}
#[inline]
pub fn tempdir() -> TempDir {
TempDir::default()
}
pub fn fake_krate(name: &str, num_versions: u8) -> IndexKrate {
assert!(num_versions > 0);
let mut version = semver::Version::new(0, 0, 0);
let mut versions = Vec::new();
for v in 0..num_versions {
match v % 3 {
0 => version.patch += 1,
1 => {
version.patch = 0;
version.minor += 1;
}
2 => {
version.patch = 0;
version.minor = 0;
version.major += 1;
}
_ => unreachable!(),
}
let iv = tame_index::IndexVersion::fake(name, version.to_string());
versions.push(iv);
}
IndexKrate { versions }
}