17#include <nlohmann/json.hpp>
42 std::optional<std::string> version;
43 std::optional<std::string> semver;
44 std::optional<std::string> license;
45 std::vector<std::string> outputs;
46 std::vector<std::string> outputsToInstall;
47 std::optional<bool> broken;
48 std::optional<bool> unfree;
49 std::optional<std::string> description;
52 std::string_view name = {},
53 std::string_view pname = {},
54 std::optional<std::string> version = std::nullopt,
55 std::optional<std::string> semver = std::nullopt,
56 std::optional<std::string> license = std::nullopt,
57 const std::vector<std::string> & outputs = {
"out" },
58 const std::vector<std::string> & outputsToInstall = {
"out" },
59 std::optional<bool> broken = std::nullopt,
60 std::optional<bool> unfree = std::nullopt,
61 std::optional<std::string> description = std::nullopt )
69 , outputsToInstall( outputsToInstall )
72 , description( description )
97 std::optional<std::string>
100 return this->version;
103 std::optional<std::string>
109 std::optional<std::string>
112 return this->license;
115 std::vector<std::string>
118 return this->outputs;
121 std::vector<std::string>
124 return this->outputsToInstall;
139 std::optional<std::string>
142 return this->description;
153from_json(
const nlohmann::json & jfrom, RawPackage & pkg );
Abstract representation of a "package", analogous to a Nix ‘derivation’.
Definition: package.hh:44
The simplest ‘Package’ implementation comprised of raw values.
Definition: raw-package.hh:35
std::optional< std::string > getLicense() const override
Definition: raw-package.hh:110
std::vector< std::string > getOutputs() const override
Definition: raw-package.hh:116
std::optional< std::string > getSemver() const override
Definition: raw-package.hh:104
std::optional< std::string > getVersion() const override
Definition: raw-package.hh:98
std::string getPname() const override
Definition: raw-package.hh:92
std::optional< bool > isBroken() const override
Definition: raw-package.hh:128
std::vector< std::string > getOutputsToInstall() const override
Definition: raw-package.hh:122
AttrPath getPathStrs() const override
Definition: raw-package.hh:80
std::string getFullName() const override
Definition: raw-package.hh:86
std::optional< std::string > getDescription() const override
Definition: raw-package.hh:140
std::optional< bool > isUnfree() const override
Definition: raw-package.hh:134
Interfaces for use by flox.
Definition: command.cc:29
void from_json(const nlohmann::json &jfrom, RawPackage &pkg)
Convert a JSON object to a flox::RawPackage.
Definition: raw-package.cc:27
void to_json(nlohmann::json &jto, const FloxException &err)
Convert a flox::FloxException to a JSON object.
Definition: exceptions.cc:27
std::vector< std::string > AttrPath
A list of key names addressing a location in a nested JSON-like object.
Definition: types.hh:33
Abstract representation of a package.
Miscellaneous typedefs and aliases.