Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
design_ir_io.hpp File Reference

Importer operations over the DesignIR value model: canonical JSON serialize/parse, asset-manifest collection, CSS box-shadow round-trip, and interactive-frame promotion. More...

#include <pulp/view/design_ir.hpp>
#include <cstddef>
#include <stdexcept>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::view::DesignIrParseError
 Thrown by parse_design_ir_json for input that is not well-formed JSON: truncated documents, unterminated strings or escapes, unbalanced or over-deep nesting, embedded NUL bytes, and anything the JSON parser itself refuses. More...

Namespaces

namespace  pulp
namespace  pulp::view
 Hover-cursor tracking for platform window hosts.

Functions

WidgetPromotionSignal pulp::view::classify_interactive_signal (const IRNode &node)
 Inspect one IR node for interactive-frame promotion signals.
std::size_t pulp::view::promote_interactive_frames (IRNode &root)
 Promote parsed frame nodes carrying click/ARIA/cursor signals to button.
std::vector< IRBoxShadow > pulp::view::parse_css_box_shadow (const std::string &css)
 Parse a CSS box-shadow value into ordered layers.
std::string pulp::view::box_shadow_to_css (const std::vector< IRBoxShadow > &shadows)
 Serialize ordered box-shadow layers back to a CSS box-shadow string, preferring each layer's raw text when present (lossless) and otherwise reconstructing from the parsed fields.
std::string pulp::view::serialize_design_ir (const DesignIR &ir, const DesignIrJsonOptions &options={})
 Serialize a DesignIR as a deterministic, versioned canonical JSON envelope.
DesignIR pulp::view::parse_design_ir_json (const std::string &json)
 Parse either the v1 canonical envelope or a legacy bare-node IR JSON document.
IRAssetManifest pulp::view::collect_design_ir_assets (const DesignIR &ir, const DesignIrAssetOptions &options={})
 Collect all external resources referenced by the IR into a manifest.
void pulp::view::refresh_design_ir_asset_manifest (DesignIR &ir, const DesignIrAssetOptions &options={})
 Refresh ir.asset_manifest from the current tree while preserving embedded manifest entries whose stable asset_id may already be referenced by nodes.

Variables

constexpr std::size_t pulp::view::kMaxDesignIrJsonDepth = 512
 Deepest object/array nesting parse_design_ir_json accepts.

Detailed Description

Importer operations over the DesignIR value model: canonical JSON serialize/parse, asset-manifest collection, CSS box-shadow round-trip, and interactive-frame promotion.

Part of pulp-design-import; the value types they operate on live in design_ir.hpp (pulp-design-ir).