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
§version_requirement: Option<VersionRequirement>
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);
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 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.
§Errors
Returns an error if a PackageRelation
can not be parsed from input.
§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
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)