pub struct ShowPipelineUseCase { /* private fields */ }Expand description
Use case for displaying detailed pipeline information.
This use case retrieves a specific pipeline by name and displays its complete metadata, including stages, configuration, and processing metrics. It provides comprehensive visibility into pipeline structure and behavior.
§Responsibilities
- Look up pipeline by name in repository
- Format detailed pipeline information for display
- Display all stage configurations and parameters
- Show processing metrics and statistics
- Handle missing pipelines with clear error messages
§Dependencies
- Pipeline Repository: For retrieving pipeline data
§Example
ⓘ
let use_case = ShowPipelineUseCase::new(pipeline_repository);
match use_case.execute("compress-encrypt".to_string()).await {
Ok(()) => println!("Pipeline details displayed"),
Err(e) => eprintln!("Failed to show pipeline: {}", e),
}Implementations§
Source§impl ShowPipelineUseCase
impl ShowPipelineUseCase
Sourcepub fn new(pipeline_repository: Arc<SqlitePipelineRepository>) -> Self
pub fn new(pipeline_repository: Arc<SqlitePipelineRepository>) -> Self
Sourcepub async fn execute(&self, pipeline_name: String) -> Result<()>
pub async fn execute(&self, pipeline_name: String) -> Result<()>
Executes the show pipeline use case.
Retrieves a specific pipeline by name and displays its complete metadata, including all stages, configuration parameters, and processing metrics.
§Parameters
pipeline_name- Name of the pipeline to display
§Output Format
Displays:
- Pipeline metadata (ID, name, status, timestamps)
- Detailed stage information with configurations
- Stage parameters (if present)
- Pipeline-level configuration (if present)
- Processing metrics (bytes, chunks, errors, warnings)
§Returns
Ok(())- Pipeline details displayed successfullyErr(anyhow::Error)- Pipeline not found or repository access failed
§Errors
Returns errors for:
- Pipeline not found with given name
- Repository connection failures
- Database query errors
- Permission issues accessing pipeline data
§Example Output
=== Pipeline Details ===
ID: 01H2X3Y4Z5A6B7C8D9E0F1G2H3
Name: compress-encrypt
Status: Active
Created: 2025-10-05 14:30:00 UTC
Updated: 2025-10-05 14:30:00 UTC
Stages (4):
1. input_checksum (Checksum)
Algorithm: sha256
Enabled: true
Order: 0
2. compression (Compression)
Algorithm: brotli
Enabled: true
Order: 1
Parameters:
level: 6
3. encryption (Encryption)
Algorithm: aes256gcm
Enabled: true
Order: 2
4. output_checksum (Checksum)
Algorithm: sha256
Enabled: true
Order: 3
Metrics:
Bytes Processed: 1048576
Chunks Processed: 16
Error Count: 0
Warning Count: 0Auto Trait Implementations§
impl Freeze for ShowPipelineUseCase
impl !RefUnwindSafe for ShowPipelineUseCase
impl Send for ShowPipelineUseCase
impl Sync for ShowPipelineUseCase
impl Unpin for ShowPipelineUseCase
impl !UnwindSafe for ShowPipelineUseCase
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more