pub struct PackageRelation {
pub name: Name,
pub version_requirement: Option<VersionRequirement>,
}
Expand description
A package relation
Describes a relation to a component.
Package relations may either consist of only a Name
or of a Name
and a
VersionRequirement
.
§Note
A PackageRelation
covers all alpm-package-relations except optional
dependencies, as those behave differently.
Fields§
§name: Name
The name of the package
version_requirement: Option<VersionRequirement>
The version requirement for the package
Implementations§
Source§impl PackageRelation
impl PackageRelation
Sourcepub fn new(name: Name, version_requirement: Option<VersionRequirement>) -> Self
pub fn new(name: Name, version_requirement: Option<VersionRequirement>) -> Self
Creates a new PackageRelation
§Examples
use alpm_types::{PackageRelation, VersionComparison, VersionRequirement};
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::Less,
version: "1.0.0".parse()?,
}),
);
PackageRelation::new("example".parse()?, None);
Sourcepub fn parser(input: &mut &str) -> ModalResult<Self>
pub fn parser(input: &mut &str) -> ModalResult<Self>
Parses a PackageRelation
from a string slice.
Consumes all of its input.
§Examples
See Self::from_str
for code examples.
§Errors
Returns an error if input
is not a valid package-relation.
Trait Implementations§
Source§impl Clone for PackageRelation
impl Clone for PackageRelation
Source§fn clone(&self) -> PackageRelation
fn clone(&self) -> PackageRelation
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for PackageRelation
impl Debug for PackageRelation
Source§impl<'de> Deserialize<'de> for PackageRelation
impl<'de> Deserialize<'de> for PackageRelation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for PackageRelation
impl Display for PackageRelation
Source§impl FromStr for PackageRelation
impl FromStr for PackageRelation
Source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
Parses a PackageRelation
from a string slice.
Delegates to PackageRelation::parser
.
§Errors
Returns an error if PackageRelation::parser
fails.
§Examples
use std::str::FromStr;
use alpm_types::{PackageRelation, VersionComparison, VersionRequirement};
assert_eq!(
PackageRelation::from_str("example<1.0.0")?,
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::Less,
version: "1.0.0".parse()?
})
),
);
assert_eq!(
PackageRelation::from_str("example<=1.0.0")?,
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::LessOrEqual,
version: "1.0.0".parse()?
})
),
);
assert_eq!(
PackageRelation::from_str("example=1.0.0")?,
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::Equal,
version: "1.0.0".parse()?
})
),
);
assert_eq!(
PackageRelation::from_str("example>1.0.0")?,
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::Greater,
version: "1.0.0".parse()?
})
),
);
assert_eq!(
PackageRelation::from_str("example>=1.0.0")?,
PackageRelation::new(
"example".parse()?,
Some(VersionRequirement {
comparison: VersionComparison::GreaterOrEqual,
version: "1.0.0".parse()?
})
),
);
assert_eq!(
PackageRelation::from_str("example")?,
PackageRelation::new("example".parse()?, None),
);
assert!(PackageRelation::from_str("example<").is_err());
Source§impl PartialEq for PackageRelation
impl PartialEq for PackageRelation
Source§impl Serialize for PackageRelation
impl Serialize for PackageRelation
impl Eq for PackageRelation
impl StructuralPartialEq for PackageRelation
Auto Trait Implementations§
impl Freeze for PackageRelation
impl RefUnwindSafe for PackageRelation
impl Send for PackageRelation
impl Sync for PackageRelation
impl Unpin for PackageRelation
impl UnwindSafe for PackageRelation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more