Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
design_ledger.hpp File Reference
#include <functional>
#include <optional>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::design::LedgerAsset
 One recorded artifact revision. More...
struct  pulp::design::DesignLedger
 The whole project ledger: a format id plus the recorded assets. More...

Namespaces

namespace  pulp
namespace  pulp::design

Enumerations

enum class  pulp::design::ReviewStatus { pulp::design::needs_review , pulp::design::approved , pulp::design::changes_requested }
 Where an asset stands in review. More...

Functions

const char * pulp::design::review_status_name (ReviewStatus status)
 Canonical lowercase slug for a status ("needs-review" | "approved" | "changes-requested").
std::optional< ReviewStatus > pulp::design::review_status_from_name (std::string_view name)
 Parse a status slug; std::nullopt if it is not one of the three.
DesignLedger pulp::design::parse_ledger (const std::string &json)
 Parse a ledger from JSON.
std::string pulp::design::ledger_to_json (const DesignLedger &ledger)
 Serialize a ledger to deterministic JSON (assets sorted, fixed key order, design_systems sorted).
LedgerAsset & pulp::design::upsert_asset (DesignLedger &ledger, const LedgerAsset &incoming)
 Record or update an asset.
std::vector< std::string > pulp::design::remove_asset (DesignLedger &ledger, const std::string &selector)
 Remove a specific asset.
std::vector< std::string > pulp::design::reconcile (DesignLedger &ledger, const std::function< bool(const std::string &path)> &exists)
 Drop assets whose file no longer exists, per the caller-supplied predicate (the "ledger vs reality" reconciler for hand-deleted files).

Variables

constexpr std::string_view pulp::design::kDesignLedgerVersion = "2026.07-design-ledger-v1"
 On-disk format id stamped into DesignLedger::ledger_version; bump on a non-additive shape change.