Skip to main content

Crate portage_atom

Crate portage_atom 

Source
Expand description

Lightweight Portage package atom parser based on PMS

This crate provides types and parsing for Gentoo/Portage package atoms according to the Package Manager Specification (PMS).

§Examples

Parse a simple unversioned atom:

use portage_atom::Cpn;

let cpn = Cpn::parse("dev-lang/rust").unwrap();
assert_eq!(cpn.category, "dev-lang");
assert_eq!(cpn.package, "rust");

Parse a versioned atom:

use portage_atom::Cpv;

let cpv = Cpv::parse("dev-lang/rust-1.75.0").unwrap();
assert_eq!(cpv.version.numbers[0], 1);

Parse a full dependency:

use portage_atom::Dep;

let dep = Dep::parse(">=dev-lang/rust-1.75.0:0[llvm_targets_AMDGPU]").unwrap();
assert!(dep.version.is_some());
assert!(dep.slot_dep.is_some());
assert!(dep.use_deps.is_some());

Re-exports§

pub use gentoo_interner;

Structs§

Cpn
Category/Package Name (Cpn)
Cpv
Category/Package/Version (Cpv)
Dep
Full dependency atom
Revision
Package revision (-r1, -r2, etc.)
Slot
Slot name and optional sub-slot
Suffix
A version suffix with optional numeric qualifier
UseDep
A single USE flag constraint within a dependency atom
Version
Package version according to PMS

Enums§

Blocker
Package dependency blocker type
DepEntry
Structured dependency tree entry.
Error
Error type for portage-atom parsing and operations
Operator
Version comparison operator for dependency atoms
SlotDep
Slot dependency with optional operator
SlotOperator
Slot operator for sub-slot rebuilds
SuffixKind
Version suffix kind
UseDefault
Default value for a USE flag that is not defined by the dependency package
UseDepKind
The kind of constraint a USE dependency expresses

Type Aliases§

Result
Result type for portage-atom operations