pub trait DslEngine: Send + Sync {
// Required methods
fn list_pipelines<'life0, 'life1, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<PipelineMeta>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn render_pipeline_json<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
slug: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn registry_json<'life0, 'life1, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Required Methods§
fn list_pipelines<'life0, 'life1, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<PipelineMeta>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn render_pipeline_json<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
slug: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sourcefn registry_json<'life0, 'life1, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn registry_json<'life0, 'life1, 'async_trait>(
&'life0 self,
project_dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Emit the full discovery envelope JSON for every pipeline in the repo:
{"schema_version": "...", "pipelines": [{slug, name, allow_manual, triggers, definition}, ...]}. Returned verbatim from the DSL runtime so
the backend’s pipeline discovery can consume it directly.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".