error_handling/
error_handling.rs1use composerize_np::composerize;
3
4fn main() {
5 println!("=== Example 1: Valid Command ===");
7 let valid_command = "docker run -p 80:80 nginx";
8
9 match composerize(valid_command, "", "latest", 2) {
10 Ok(yaml) => println!("Success!\n{}", yaml),
11 Err(e) => eprintln!("Error: {}", e),
12 }
13
14 println!("\n{}\n", "=".repeat(50));
15
16 println!("=== Example 2: Missing Image (Error) ===");
18 let invalid_command = "docker run -d -p 80:80";
19
20 match composerize(invalid_command, "", "latest", 2) {
21 Ok(yaml) => println!("Success!\n{}", yaml),
22 Err(e) => eprintln!("Expected error: {}", e),
23 }
24
25 println!("\n{}\n", "=".repeat(50));
26
27 println!("=== Example 3: Invalid Format (Error) ===");
29 let command = "docker run nginx";
30
31 match composerize(command, "", "invalid-format", 2) {
32 Ok(yaml) => println!("Success!\n{}", yaml),
33 Err(e) => eprintln!("Expected error: {}", e),
34 }
35
36 println!("\n{}\n", "=".repeat(50));
37
38 println!("=== Example 4: Production-style Error Handling ===");
40
41 fn convert_with_fallback(command: &str) -> String {
42 composerize(command, "", "latest", 2)
43 .unwrap_or_else(|e| {
44 eprintln!("Conversion failed: {}", e);
45 "services:\n default:\n image: alpine\n".to_string()
47 })
48 }
49
50 let result = convert_with_fallback("docker run nginx");
51 println!("Result:\n{}", result);
52}