diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-03-28 17:13:27 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-03-29 10:38:23 +0300 |
commit | 3783b6ace86957c95e5137c7645af319dd2462e9 (patch) | |
tree | f4649980e94680e9c277611e4c7b7988d0591f96 /src/project.rs | |
parent | 53db547b3a4dc45aaa33b24f5b85da1e3397a38d (diff) | |
download | bumper-rs-3783b6ace86957c95e5137c7645af319dd2462e9.tar.gz |
feat: set version in Cargo.toml for Rust projects
Diffstat (limited to 'src/project.rs')
-rw-r--r-- | src/project.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/project.rs b/src/project.rs new file mode 100644 index 0000000..7471c66 --- /dev/null +++ b/src/project.rs @@ -0,0 +1,26 @@ +use crate::errors::BumperError; +use crate::rust::Rust; +use std::path::Path; + +pub enum ProjectKind { + Rust(Rust), +} + +impl ProjectKind { + pub fn detect<P: AsRef<Path>>(dirname: P) -> Result<ProjectKind, BumperError> { + let dirname = dirname.as_ref(); + + if let Ok(p) = Rust::new(dirname) { + return Ok(Self::Rust(p)); + } + + Err(BumperError::UnknownProjectKind(dirname.to_path_buf())) + } + + pub fn set_version(&mut self, version: &str) -> Result<(), BumperError> { + match self { + Self::Rust(ref mut rust) => rust.set_version(version)?, + } + Ok(()) + } +} |