ryo-app 0.1.0

[preview] Application layer for RYO - Project management, Intent handling, API
Documentation
//! Discover Module - Pattern-based symbol discovery
//!
//! # Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────────┐
//! │ discover/                                                       │
//! ├─────────────────────────────────────────────────────────────────┤
//! │  response.rs ← Response DTOs (CascadeResult, DiscoverError)     │
//! │  service.rs  ← DiscoverService (Query execution, cascade scan)  │
//! └─────────────────────────────────────────────────────────────────┘
//! ```
//!
//! # Layer Responsibilities
//!
//! - **response.rs**: Application Layer response DTOs for external consumers
//! - **service.rs**: Application Layer service (orchestrates domain operations)
//!
//! Domain types (`CascadeSpec`) live in ryo-analysis.
//! Use `Intent::from(CascadeSpec)` for domain → intent conversion.
//!
//! # Usage
//!
//! ```ignore
//! use ryo_app::{DiscoverService, CascadeResult, Intent};
//! use ryo_analysis::cascade::CascadeSpec;
//!
//! let service = DiscoverService::from_project(&project);
//!
//! // Find symbols matching pattern
//! let result = service.find_symbols("*Error");
//!
//! // Find cascade effects for enum
//! let cascade: CascadeResult = service.find_cascade_effects("Status", Some("NewVariant"));
//!
//! // Convert to Intents for execution
//! let intents: Vec<Intent> = cascade.specs.into_iter().map(Into::into).collect();
//! ```

mod response;
mod service;

// Re-export public API
pub use response::{CascadeResult, DiscoverError};
pub(crate) use service::pattern_contains_enum;
pub use service::{find_cascade_effects, find_remove_cascade_effects, DiscoverService};