pub mod cargo_helpers;
pub mod detect;
pub mod go;
pub mod node;
pub mod python;
pub mod rust;
pub mod rust_maturin;
use std::path::{Path, PathBuf};
use crate::error::Result;
pub trait ProjectType {
fn name(&self) -> &str;
fn read_version(&self, root: &Path) -> Result<semver::Version>;
fn write_version(&self, root: &Path, version: &semver::Version) -> Result<()>;
fn verify_lockfile(&self, root: &Path) -> Result<()>;
fn sync_lockfile(&self, root: &Path) -> Result<()>;
fn run_lint(&self, root: &Path) -> Result<()>;
fn run_tests(&self, root: &Path) -> Result<()>;
fn modified_files(&self) -> Vec<PathBuf>;
fn is_tag_versioned(&self) -> bool {
false
}
}
pub use detect::detect;