diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-06-25 17:23:31 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2021-09-16 12:31:45 +0200 |
commit | 2c0ad8a6c457a72e952f630c8993efb54c4d50cc (patch) | |
tree | a82f769bc98e0cfbb3f01919fe02c2980d2c2e2c /src/package/dependency/runtime.rs | |
parent | 288b7860b2d216f5aefce252b3fe51928325ff33 (diff) |
Add conditional dependency variant
This patch adds a conditional dependency variant to the build/runtime dependency
deserialization type(s).
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/package/dependency/runtime.rs')
-rw-r--r-- | src/package/dependency/runtime.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/package/dependency/runtime.rs b/src/package/dependency/runtime.rs index 3916b22..26679e2 100644 --- a/src/package/dependency/runtime.rs +++ b/src/package/dependency/runtime.rs @@ -12,22 +12,25 @@ use anyhow::Result; use serde::Deserialize; use serde::Serialize; -use crate::package::dependency::ParseDependency; -use crate::package::dependency::StringEqual; use crate::package::PackageName; use crate::package::PackageVersionConstraint; +use crate::package::dependency::ParseDependency; +use crate::package::dependency::StringEqual; +use crate::package::dependency::condition::Condition; /// A dependency that is packaged and is required during runtime #[derive(Serialize, Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] #[serde(untagged)] pub enum Dependency { Simple(String), + Conditional(String, Condition), } impl AsRef<str> for Dependency { fn as_ref(&self) -> &str { match self { Dependency::Simple(name) => name, + Dependency::Conditional(name, _) => name, } } } @@ -36,6 +39,7 @@ impl StringEqual for Dependency { fn str_equal(&self, s: &str) -> bool { match self { Dependency::Simple(name) => name == s, + Dependency::Conditional(name, _) => name == s, } } } @@ -68,6 +72,7 @@ mod tests { match s.setting { Dependency::Simple(name) => assert_eq!(name, "foo", "Expected 'foo', got {}", name), + other => panic!("Unexpected deserialization to other variant: {:?}", other), } } } |