swf-builders 1.0.0-alpha9

Programmatic builders for Serverless Workflow definitions
Documentation
use super::*;

// ============== EmitTaskDefinitionBuilder ==============
/// Builder for constructing an emit task that produces a workflow event.
pub struct EmitTaskDefinitionBuilder {
    task: EmitTaskDefinition,
}

impl EmitTaskDefinitionBuilder {
    pub fn new(event: EventDefinition) -> Self {
        let mut task = EmitTaskDefinition::default();
        task.emit.event = event;
        Self { task }
    }

    /// Replaces all event attributes with the provided map.
    pub fn with_attributes(&mut self, attrs: HashMap<String, Value>) -> &mut Self {
        self.task.emit.event.with = attrs;
        self
    }
}

impl_task_definition_builder_base!(EmitTaskDefinitionBuilder, task, TaskDefinition::Emit);