|
| bool | donner::editor::repro::detail::CheckedAdd (std::size_t left, std::size_t right, std::size_t *result) |
| | Add two size values without wrapping; leave result unchanged on overflow.
|
| bool | donner::editor::repro::detail::CheckedMultiply (std::size_t left, std::size_t right, std::size_t *result) |
| | Multiply two size values without wrapping; leave result unchanged on overflow.
|
| ReplaySemanticActionCost | donner::editor::repro::EstimateReplaySemanticActionCost (const ReproAction &action, std::size_t documentSourceBytes, std::size_t selectedElementCount) |
| | Estimate the mutation and source-rewrite work of one semantic replay action.
|
|
ReplayInputFrameCost | donner::editor::repro::EstimateReplayInputFrameCost (const ReproFrame &frame, std::size_t documentSourceBytes, std::size_t selectedElementCount, std::size_t potentialDocumentElementCount, std::size_t heldRepeatSourceRewriteUnits=0) |
| | Conservatively estimate source mutation work reachable through raw frame input.
|
| template<typename ApplyCallback> |
| bool | donner::editor::repro::ApplyReplayActionWithResourceBudget (ReplayExecutionResourceBudget &budget, const ReplaySemanticActionCost &cost, ApplyCallback &&apply) |
| | Reserve semantic-action work before invoking the mutation callback.
|
|
template<typename DispatchCallback> |
| bool | donner::editor::repro::DispatchReplayInputWithResourceBudget (ReplayExecutionResourceBudget &budget, const ReplayInputFrameCost &cost, DispatchCallback &&dispatch) |
| | Reserve raw-input mutation work before invoking the input dispatch callback.
|
| template<typename ActionRange, typename EstimateActionCallback, typename ApplyActionCallback, typename EstimateInputCallback, typename DispatchInputCallback> |
| ReplayFrameDispatchResult | donner::editor::repro::DispatchReplayFrameWithResourceBudget (ReplayExecutionResourceBudget &budget, const ActionRange &actions, EstimateActionCallback &&estimateAction, ApplyActionCallback &&applyAction, EstimateInputCallback &&estimateInput, DispatchInputCallback &&dispatchInput) |
| | Apply semantic actions before pricing and dispatching the raw input consumed later in the frame.
|
template<typename ActionRange, typename EstimateActionCallback, typename ApplyActionCallback, typename EstimateInputCallback, typename DispatchInputCallback>
| ReplayFrameDispatchResult donner::editor::repro::DispatchReplayFrameWithResourceBudget |
( |
ReplayExecutionResourceBudget & | budget, |
|
|
const ActionRange & | actions, |
|
|
EstimateActionCallback && | estimateAction, |
|
|
ApplyActionCallback && | applyAction, |
|
|
EstimateInputCallback && | estimateInput, |
|
|
DispatchInputCallback && | dispatchInput ) |
|
nodiscard |
Apply semantic actions before pricing and dispatching the raw input consumed later in the frame.
The input estimator runs after every action callback, so it observes the resulting live document size and selection. Every reservation also precedes its corresponding mutation callback.