Skip to main content

Crate portage_atom_pubgrub

Crate portage_atom_pubgrub 

Source
Expand description

Bridge between portage-atom and the PubGrub dependency solver.

Maps PMS package atoms to PubGrub’s Package, Version, and VersionSet traits, and provides a DependencyProvider implementation backed by a package repository.

§USE Flag Handling

USE conditionals in dependency strings are handled via a hybrid strategy:

  • User-decided flags (enabled / disabled) are eagerly evaluated at registration time — the solver never sees those branches.
  • Solver-decided flags are encoded as virtual packages with two versions (0 = OFF, 1 = ON). PubGrub’s one-version-per-package constraint provides mutual exclusion for free.

Structs§

DepEdge
A labeled edge in the dependency graph: (from_pkg, from_version) depends on (to_pkg, to_version) via the given class.
InMemoryRepository
A simple in-memory repository for testing.
InstalledPackage
A package that is already installed, with its version and policy.
PackageDeps
Structured dependency trees separated by PMS class.
PackageVersions
Metadata for a single ebuild version, including its dependency trees.
PortageDependencyProvider
A PubGrub DependencyProvider backed by a portage package repository.
PortagePackage
A PubGrub-compatible package identifier combining a CPN with an optional slot.
PortageVersionSet
A PubGrub VersionSet backed by PMS version ranges.
SlotOperatorBinding
A resolved slot-operator binding.
UseConfig
Configuration for USE flag evaluation during dependency conversion.

Enums§

DepClass
Dependency class label for an edge in the dependency graph.
Error
Error type for portage-atom-pubgrub.
IUseDefault
Default state for an IUSE flag, from the +/- prefix in IUSE.
InstalledPolicy
Whether an installed package should be favored or locked during resolution.
UseFlagState
How a single USE flag should be evaluated during dependency conversion.

Traits§

PackageRepository
Trait for a package repository that the solver can query.

Type Aliases§

Result
Result type for portage-atom-pubgrub operations.