Flox Package Database 1
CRUD Operations on Nix Package Metadata
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
environment.hh File Reference

A collection of files associated with an environment. More...

#include <memory>
#include <optional>
#include <string_view>
#include <utility>
#include <vector>
#include <nix/ref.hh>
#include "flox/core/exceptions.hh"
#include "flox/core/nix-state.hh"
#include "flox/core/types.hh"
#include "flox/pkgdb/input.hh"
#include "flox/pkgdb/pkg-query.hh"
#include "flox/registry.hh"
#include "flox/resolver/lockfile.hh"
#include "flox/resolver/manifest-raw.hh"
#include "flox/resolver/manifest.hh"

Go to the source code of this file.

Classes

class  flox::resolver::Environment
 A collection of data associated with an environment and its state. More...
 

Namespaces

namespace  flox
 Interfaces for use by flox.
 
namespace  flox::pkgdb
 Interfaces for caching package metadata in SQLite3 databases.
 

Typedefs

using flox::resolver::ResolutionFailure = std::vector< std::pair< InstallID, std::string > >
 A pair of install ID and locked flake URLs used to record failed resolution attempts for a given descriptor.
 
using flox::resolver::ResolutionResult = std::variant< ResolutionFailure, SystemPackages >
 Either a set of resolved packages ( for a given system ) or a memo indicating that resolution failed for certain descriptors against certain inputs.
 

Functions

 flox::resolver::FLOX_DEFINE_EXCEPTION (ResolutionFailureException, EC_RESOLUTION_FAILURE, "resolution failure")
 

Detailed Description

A collection of files associated with an environment.

Typedef Documentation

◆ ResolutionFailure

using flox::resolver::ResolutionFailure = typedef std::vector<std::pair<InstallID, std::string> >

A pair of install ID and locked flake URLs used to record failed resolution attempts for a given descriptor.

This allows us to more easily format exception messages.

◆ ResolutionResult

using flox::resolver::ResolutionResult = typedef std::variant<ResolutionFailure, SystemPackages>

Either a set of resolved packages ( for a given system ) or a memo indicating that resolution failed for certain descriptors against certain inputs.

When attempting to resolve a group of packages for a given system, we either succeed and return flox::resolver::SystemPackages or fail and return flox::resolver::ResolutionFailure. This allows us to print descriptors that failed as groups for a given input+rev.