Skip to main content

Module operation

Module operation 

Source
Expand description

Operation trait re-exported from ironflow_core::operation.

The canonical definitions live in ironflow-core so that external crates can implement Operation without depending on ironflow-engine. This module re-exports them for backward compatibility.

§Examples

use ironflow_engine::operation::Operation;
use ironflow_core::operation::OperationContext;
use ironflow_core::error::OperationError;
use serde_json::{Value, json};
use std::future::Future;
use std::pin::Pin;

struct CreateGitlabIssue {
    project_id: u64,
    title: String,
}

impl Operation for CreateGitlabIssue {
    fn kind(&self) -> &str {
        "gitlab"
    }

    fn execute<'a>(
        &'a self,
        _ctx: &'a OperationContext,
    ) -> Pin<Box<dyn Future<Output = Result<Value, OperationError>> + Send + 'a>> {
        Box::pin(async move {
            Ok(json!({"issue_id": 42, "url": "https://gitlab.com/issues/42"}))
        })
    }
}

Structs§

NoopSecretResolver
A SecretResolver that always returns Ok(None).
OperationContext
Context provided to every Operation::execute call.
SecretValue
A decrypted secret value returned by SecretResolver::get.

Traits§

Operation
A user-defined operation that integrates into the workflow step lifecycle.
SecretResolver
Trait for resolving secrets at operation execution time.
TypedOperation
A typed extension of Operation that declares a concrete output type.