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: NameThe 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);Trait Implementations§
Source§impl AlpmParser for PackageRelation
impl AlpmParser for PackageRelation
Source§fn parser(input: &mut &str) -> ModalResult<Self>
fn parser(input: &mut &str) -> ModalResult<Self>
Recognizes a PackageRelation in a string slice.
§Examples
See Self::from_str for code examples.
§Errors
Returns an error if input does not begin with a valid alpm-package-relation.
Source§impl Clone for PackageRelation
impl Clone for PackageRelation
Source§fn clone(&self) -> PackageRelation
fn clone(&self) -> PackageRelation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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>,
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<PackageRelation> for RelationOrSoname
impl PartialEq<PackageRelation> for RelationOrSoname
Source§fn eq(&self, other: &PackageRelation) -> bool
fn eq(&self, other: &PackageRelation) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq for PackageRelation
impl PartialEq for PackageRelation
Source§fn eq(&self, other: &PackageRelation) -> bool
fn eq(&self, other: &PackageRelation) -> bool
self and other values to be equal, and is used by ==.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 UnsafeUnpin for PackageRelation
impl UnwindSafe for PackageRelation
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<U> ParserUntil for Uwhere
U: AlpmParser,
impl<U> ParserUntil for Uwhere
U: AlpmParser,
Source§fn parser_until<'a, P>(
delimiter: P,
) -> impl Parser<&'a str, U, ErrMode<ContextError>>
fn parser_until<'a, P>( delimiter: P, ) -> impl Parser<&'a str, U, ErrMode<ContextError>>
Returns a [Parser] that parses Self until the given delimiter parser
matches.
§Note
Does not consume the delimiter.
Source§fn parser_until_eof(input: &mut &str) -> Result<Self, ErrMode<ContextError>>
fn parser_until_eof(input: &mut &str) -> Result<Self, ErrMode<ContextError>>
Source§impl<U> ParserUntilInclusive for Uwhere
U: ParserUntil,
impl<U> ParserUntilInclusive for Uwhere
U: ParserUntil,
Source§fn parser_until_inclusive<'a, P>(
delimiter: P,
) -> impl Parser<&'a str, U, ErrMode<ContextError>>
fn parser_until_inclusive<'a, P>( delimiter: P, ) -> impl Parser<&'a str, U, ErrMode<ContextError>>
Returns a [Parser] that parses the whole input and consumes the given delimiter parser.
Delegates to ParserUntil::parser_until and consumes the delimiter.