Skip to main content

ryo_executor/executor/
mod.rs

1//! Executor: MutationSpec を実行して結果を返す
2//!
3//! # Architecture
4//!
5//! ```text
6//! MutationSpec (Declarative)
7//!    │
8//!    ▼
9//! ┌──────────────────────────────────────────┐
10//! │  MutationSpec + ParallelBlueprint        │
11//! │  - Declarative mutation specs            │
12//! │  - Dependency graph                      │
13//! │  - Conflict detection                    │
14//! └──────────────────┬───────────────────────┘
15//!                    │
16//!                    ▼
17//! ┌──────────────────────────────────────────┐
18//! │            Executor                       │
19//! └──────────────────┬───────────────────────┘
20//!                    │
21//!     ┌──────────────┼──────────────┐
22//!     ▼              ▼              ▼
23//! ┌────────┐   ┌──────────┐   ┌────────────┐
24//! │CoreExec│   │MutateExec│   │BlueprintEx │
25//! │Read    │   │AddFn     │   │Parallel    │
26//! │Grep    │   │Rename    │   │            │
27//! │Glob    │   │...       │   │            │
28//! └────────┘   └──────────┘   └────────────┘
29//! ```
30
31mod blueprint;
32mod blueprint_executor;
33mod cascade_convert;
34pub mod conflict;
35mod context;
36mod core;
37mod orchestrator;
38pub mod registry;
39mod spec;
40mod traits;
41
42// Re-export ryo-verification for backwards compatibility
43pub use ryo_verification as verification;
44
45pub use blueprint::{BlueprintBuilder, Conflict, ConflictKind, DependencyGraph, ParallelBlueprint};
46pub use blueprint_executor::{
47    suggest_strategy, BlueprintExecutor, BlueprintResult, ExecutionStrategy, SpecResult, SyncError,
48};
49pub use cascade_convert::convert_cascade_specs;
50pub use conflict::{find_conflicting_pairs, group_by_conflicts, specs_conflict, target_conflicts};
51pub use context::ExecutionContext;
52pub use core::CoreExecutor;
53pub use orchestrator::{
54    classify_for_parallel_execution, partition_by_item_refs, suggest_orchestration, ConflictInfo,
55    ExecutionOrchestrator, OrchestratedResult, OrchestrationStrategy, OrchestratorError,
56    OrchestratorErrorKind,
57};
58pub use spec::{
59    EnumToTraitStrategy, InsertPosition, ItemKind, MatchHandling, MutationSpec,
60    MutationTargetSymbol, Scope, SelfParam, SpecRelation, SpecRelationKind, StmtInsertPosition,
61    TypeContext, TypeTransform, VariantKind, Visibility,
62};
63pub use traits::{CompositeExecutor, Executor, ExecutorError};