summaryrefslogtreecommitdiff
path: root/src/project.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-03-28 17:13:27 +0300
committerLars Wirzenius <liw@liw.fi>2021-03-29 10:38:23 +0300
commit3783b6ace86957c95e5137c7645af319dd2462e9 (patch)
treef4649980e94680e9c277611e4c7b7988d0591f96 /src/project.rs
parent53db547b3a4dc45aaa33b24f5b85da1e3397a38d (diff)
downloadbumper-rs-3783b6ace86957c95e5137c7645af319dd2462e9.tar.gz
feat: set version in Cargo.toml for Rust projects
Diffstat (limited to 'src/project.rs')
-rw-r--r--src/project.rs26
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(())
+ }
+}