Parser, migration, opaque-payload, and Timeline structure quotas. More...
#include <schema_json.hpp>
Static Public Member Functions | |
| static DecodeLimits | web_defaults () noexcept |
| Returns tighter ceilings suitable for memory-constrained web runtimes. | |
Public Attributes | |
| std::size_t | max_input_bytes = 1024ull * 1024ull * 1024ull |
| Maximum complete input size. | |
| std::size_t | max_depth = 64 |
| Maximum JSON container nesting depth. | |
| std::size_t | max_total_values = 30'000'000 |
| Maximum total DOM values. | |
| std::size_t | max_array_elements = 10'000'000 |
| Maximum elements in one JSON array. | |
| std::size_t | max_object_members = 4'096 |
| Maximum members in one JSON object. | |
| std::size_t | max_string_bytes = 16ull * 1024ull * 1024ull |
| Maximum decoded bytes in one string or key. | |
| std::size_t | max_opaque_bytes = 64ull * 1024ull * 1024ull |
| Maximum raw bytes retained by one opaque envelope. | |
| std::size_t | max_migration_steps = 64 |
| Maximum adjacent migration callbacks per value. | |
| std::size_t | max_assets = 100'000 |
| Maximum media assets in one project. | |
| std::size_t | max_audio_loop_points = 1'000'000 |
| Maximum loop slice points across all assets. | |
| std::size_t | max_audio_loop_tags = 100'000 |
| Maximum loop tags across all assets. | |
| std::size_t | max_sequences = 100'000 |
| Maximum project sequences. | |
| std::size_t | max_tracks = 10'000 |
| Maximum tracks across all sequences. | |
| std::size_t | max_clips = 100'000 |
| Maximum clips across all tracks. | |
| std::size_t | max_notes = 5'000'000 |
| Maximum note events across all note content. | |
| std::size_t | max_locators = 1'000'000 |
| Maximum asset locators. | |
| std::size_t | max_representations = 1'000'000 |
| Maximum alternate asset representations. | |
| std::size_t | max_device_placements = 100'000 |
| Maximum device placements across all tracks. | |
| std::size_t | max_automation_lanes = 100'000 |
| Maximum automation lanes across all tracks. | |
| std::size_t | max_automation_points = 5'000'000 |
| Maximum automation points across all lanes. | |
| std::size_t | max_modulators = 100'000 |
| Maximum modulators across all tracks. | |
| std::size_t | max_macro_controls = 100'000 |
| Maximum macro controls across all tracks. | |
| std::size_t | max_modulation_routes = 1'000'000 |
| Maximum modulation routes across all tracks. | |
| std::size_t | max_take_lanes = 100'000 |
| Maximum take lanes across all tracks. | |
| std::size_t | max_takes = 5'000'000 |
| Maximum takes across all take lanes. | |
| std::size_t | max_take_comp_segments = 5'000'000 |
| Maximum take-comp segments across all lanes. | |
| std::size_t | max_markers = 100'000 |
| Maximum sequence markers. | |
| std::size_t | max_regions = 100'000 |
| Maximum sequence regions. | |
| std::size_t | max_scenes = 100'000 |
| Maximum launch scenes. | |
| std::size_t | max_slots = 1'000'000 |
| Maximum launch slots across all scenes. | |
| std::size_t | max_chord_scale_events = 1'000'000 |
| Maximum chord/scale events. | |
| std::size_t | max_dynamics_events = 1'000'000 |
| Maximum dynamics events. | |
| std::size_t | max_groove_steps = 100'000 |
| Maximum groove-template steps. | |
| std::size_t | max_midi_lanes = 100'000 |
| Maximum controller/expression lanes across all MIDI content. | |
| std::size_t | max_midi_lane_points = 5'000'000 |
| Maximum controller points across all lanes. | |
Parser, migration, opaque-payload, and Timeline structure quotas.
All byte counts measure bytes, not Unicode scalar values. Container counts apply per container unless named as totals. The same limits object should be passed through structural preflight, parsing, migrations, and model decode so no later stage widens admission.
|
staticnoexcept |
Returns tighter ceilings suitable for memory-constrained web runtimes.
| std::size_t pulp::timeline::DecodeLimits::max_array_elements = 10'000'000 |
Maximum elements in one JSON array.
| std::size_t pulp::timeline::DecodeLimits::max_assets = 100'000 |
Maximum media assets in one project.
| std::size_t pulp::timeline::DecodeLimits::max_audio_loop_points = 1'000'000 |
Maximum loop slice points across all assets.
| std::size_t pulp::timeline::DecodeLimits::max_audio_loop_tags = 100'000 |
Maximum loop tags across all assets.
| std::size_t pulp::timeline::DecodeLimits::max_automation_lanes = 100'000 |
Maximum automation lanes across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_automation_points = 5'000'000 |
Maximum automation points across all lanes.
| std::size_t pulp::timeline::DecodeLimits::max_chord_scale_events = 1'000'000 |
Maximum chord/scale events.
| std::size_t pulp::timeline::DecodeLimits::max_clips = 100'000 |
Maximum clips across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_depth = 64 |
Maximum JSON container nesting depth.
| std::size_t pulp::timeline::DecodeLimits::max_device_placements = 100'000 |
Maximum device placements across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_dynamics_events = 1'000'000 |
Maximum dynamics events.
| std::size_t pulp::timeline::DecodeLimits::max_groove_steps = 100'000 |
Maximum groove-template steps.
| std::size_t pulp::timeline::DecodeLimits::max_input_bytes = 1024ull * 1024ull * 1024ull |
Maximum complete input size.
| std::size_t pulp::timeline::DecodeLimits::max_locators = 1'000'000 |
Maximum asset locators.
| std::size_t pulp::timeline::DecodeLimits::max_macro_controls = 100'000 |
Maximum macro controls across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_markers = 100'000 |
Maximum sequence markers.
| std::size_t pulp::timeline::DecodeLimits::max_midi_lane_points = 5'000'000 |
Maximum controller points across all lanes.
| std::size_t pulp::timeline::DecodeLimits::max_midi_lanes = 100'000 |
Maximum controller/expression lanes across all MIDI content.
| std::size_t pulp::timeline::DecodeLimits::max_migration_steps = 64 |
Maximum adjacent migration callbacks per value.
| std::size_t pulp::timeline::DecodeLimits::max_modulation_routes = 1'000'000 |
Maximum modulation routes across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_modulators = 100'000 |
Maximum modulators across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_notes = 5'000'000 |
Maximum note events across all note content.
| std::size_t pulp::timeline::DecodeLimits::max_object_members = 4'096 |
Maximum members in one JSON object.
| std::size_t pulp::timeline::DecodeLimits::max_opaque_bytes = 64ull * 1024ull * 1024ull |
Maximum raw bytes retained by one opaque envelope.
| std::size_t pulp::timeline::DecodeLimits::max_regions = 100'000 |
Maximum sequence regions.
| std::size_t pulp::timeline::DecodeLimits::max_representations = 1'000'000 |
Maximum alternate asset representations.
| std::size_t pulp::timeline::DecodeLimits::max_scenes = 100'000 |
Maximum launch scenes.
| std::size_t pulp::timeline::DecodeLimits::max_sequences = 100'000 |
Maximum project sequences.
| std::size_t pulp::timeline::DecodeLimits::max_slots = 1'000'000 |
Maximum launch slots across all scenes.
| std::size_t pulp::timeline::DecodeLimits::max_string_bytes = 16ull * 1024ull * 1024ull |
Maximum decoded bytes in one string or key.
| std::size_t pulp::timeline::DecodeLimits::max_take_comp_segments = 5'000'000 |
Maximum take-comp segments across all lanes.
| std::size_t pulp::timeline::DecodeLimits::max_take_lanes = 100'000 |
Maximum take lanes across all tracks.
| std::size_t pulp::timeline::DecodeLimits::max_takes = 5'000'000 |
Maximum takes across all take lanes.
| std::size_t pulp::timeline::DecodeLimits::max_total_values = 30'000'000 |
Maximum total DOM values.
| std::size_t pulp::timeline::DecodeLimits::max_tracks = 10'000 |
Maximum tracks across all sequences.