diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-10-30 11:29:15 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-10-30 11:29:15 +0100 |
commit | df1ae0eec0742c3d5e882738f96c665882448437 (patch) | |
tree | a99d829ab39af5037f0318a9cdd31c35823d46dd /src/package/dependency/build.rs | |
parent | 25508b353a4f0a277d9f4ef2f67f5b1b710708c9 (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.rs | 11 |
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) + } +} + |