pub struct MacroStep {
pub name: Option<String>,
pub delay_ms: Option<u64>,
pub kind: MacroStepKind,
pub optional: bool,
pub when: Option<String>,
pub retry: Option<Retry>,
pub save_as: BTreeMap<String, String>,
pub bind: BTreeMap<String, String>,
}Expand description
One step of a request macro.
Fields§
§name: Option<String>Entry label (events/console).
delay_ms: Option<u64>Delay before the request in milliseconds (baked into [Options]).
kind: MacroStepKindPayload or composition.
optional: booloptional: — failure warns and the batch segments around it.
when: Option<String>when: skip guard (runs iff non-empty after resolution).
retry: Option<Retry>Finite retry policy.
save_as: BTreeMap<String, String>saveAs: promotions (capture name → global).
bind: BTreeMap<String, String>Step-scope fragment bindings (ADR-0018), the most specific of the three.
Implementations§
Source§impl MacroStep
impl MacroStep
Sourcepub fn declared_options(&self) -> impl Iterator<Item = &'static str>
pub fn declared_options(&self) -> impl Iterator<Item = &'static str>
The crate::engine::OPTION_FAMILIES this step sets for itself.
The single derivation of “which options does the YAML declare”, so the
double-declaration rule reads the same answer for both body forms —
an inline block’s [Options] and a fragment’s declared_options are
checked against this, not against two hand-written lists that could
drift apart and let hurl’s silent last-wins back in.
A new family is added here and in OPTION_FAMILIES together; both
call sites then cover it with no further edit.