> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# conditions • Rust AI Agent SDK

> Conditions Module for PraisonAI Rust SDK

# conditions

<Badge color="orange">Rust AI Agent SDK</Badge>

Conditions Module for PraisonAI Rust SDK

Provides condition protocols and implementations for workflow routing.
Enables unified condition evaluation across AgentFlow and AgentTeam.

# Example

```rust,ignore theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::conditions::{ExpressionCondition, DictCondition};

// Expression-based condition
let cond = ExpressionCondition::new("score > 80");
let result = cond.evaluate(&context);

// Dictionary-based condition
let cond = DictCondition::new()
.when("approved", vec!["review_task"])
.when("rejected", vec!["revision_task"]);
```

## Import

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::conditions::*;
```

## Classes

<CardGroup cols={2}>
  <Card title="ExpressionCondition" icon="brackets-curly" href="../classes/ExpressionCondition">
    Simple expression-based condition. Evaluates simple expressions like 'score  80' or 'status == 'approved''.
  </Card>

  <Card title="DictCondition" icon="brackets-curly" href="../classes/DictCondition">
    Dictionary-based condition for routing. Maps values to target tasks/steps.
  </Card>

  <Card title="If" icon="brackets-curly" href="../classes/If">
    Builder for creating conditions.
  </Card>

  <Card title="ConditionProtocol" icon="brackets-curly" href="../classes/ConditionProtocol">
    Protocol trait for condition implementations. This defines the essential interface that any condition must provide. It enables unified condition...
  </Card>

  <Card title="RoutingConditionProtocol" icon="brackets-curly" href="../classes/RoutingConditionProtocol">
    Extended protocol for conditions that support routing to targets. This extends ConditionProtocol with the ability to return target tasks/steps based...
  </Card>
</CardGroup>

## Functions

<CardGroup cols={2}>
  <Card title="evaluate_condition()" icon="function" href="../functions/evaluate_condition">
    Evaluate a condition expression against a context. Convenience function for simple condition evaluation.
  </Card>
</CardGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust Conditions" icon="code-branch" href="/docs/rust/conditions" />

  <Card title="Rust Routing" icon="route" href="/docs/rust/routing" />
</CardGroup>
