summaryrefslogtreecommitdiffstats
path: root/src/package/dependency/build.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-10-30 11:29:15 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-10-30 11:29:15 +0100
commitdf1ae0eec0742c3d5e882738f96c665882448437 (patch)
treea99d829ab39af5037f0318a9cdd31c35823d46dd /src/package/dependency/build.rs
parent25508b353a4f0a277d9f4ef2f67f5b1b710708c9 (diff)
Add ParseDependency trait
This patch adds a trait "ParseDependency" which can be used to transform a stringly typed dependency object into a (PackageName, PackageVersion). Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/package/dependency/build.rs')
-rw-r--r--src/package/dependency/build.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/package/dependency/build.rs b/src/package/dependency/build.rs
index 0f8c0c1..9d67051 100644
--- a/src/package/dependency/build.rs
+++ b/src/package/dependency/build.rs
@@ -1,6 +1,10 @@
use serde::Deserialize;
+use anyhow::Result;
use crate::package::dependency::StringEqual;
+use crate::package::dependency::ParseDependency;
+use crate::package::PackageName;
+use crate::package::PackageVersionConstraint;
/// A dependency that is packaged and is only required during build time
#[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
@@ -12,3 +16,10 @@ impl StringEqual for BuildDependency {
self.0 == s
}
}
+
+impl ParseDependency for BuildDependency {
+ fn parse_into_name_and_version(self) -> Result<(PackageName, PackageVersionConstraint)> {
+ crate::package::dependency::parse_package_dependency_string_into_name_and_version(&self.0)
+ }
+}
+