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
- Slot
Operator - Slot operator for sub-slot rebuilds
- Suffix
Kind - Version suffix kind
- UseDefault
- Default value for a USE flag that is not defined by the dependency package
- UseDep
Kind - The kind of constraint a USE dependency expresses
Type Aliases§
- Result
- Result type for portage-atom operations