11use clap:: Parser ;
22use leetcode_cli:: {
3- utils,
3+ utils:: {
4+ parse_programming_language,
5+ spin_the_spinner,
6+ } ,
47 Cli ,
58 Commands ,
69 LeetcodeApiRunner ,
@@ -18,36 +21,56 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
1821 Commands :: Info {
1922 id,
2023 } => {
21- println ! ( "{}" , api_runner. get_problem_info( * id) . await ?) ;
24+ let mut spin = spin_the_spinner ( "Fetching problem info..." ) ;
25+ let result = api_runner. get_problem_info ( * id) . await ;
26+ spin. stop ( ) ;
27+ match result {
28+ Ok ( info) => println ! ( "{}" , info) ,
29+ Err ( e) => eprintln ! ( "Error fetching problem info: {}" , e) ,
30+ }
2231 } ,
2332 Commands :: Start {
2433 id,
2534 language,
2635 } => {
2736 let default = & rcs. config . default_language . unwrap ( ) ;
2837 let lang = match language {
29- Some ( lang) => utils :: parse_programming_language ( lang) ?,
30- None => utils :: parse_programming_language ( default) ?,
38+ Some ( lang) => parse_programming_language ( lang) ?,
39+ None => parse_programming_language ( default) ?,
3140 } ;
32- let start_problem = api_runner. start_problem ( * id, lang) . await ?;
33- println ! ( "{}\n \n Happy coding :)" , start_problem) ;
41+ let mut spin = spin_the_spinner ( "Starting problem setup..." ) ;
42+ let start_problem = api_runner. start_problem ( * id, lang) . await ;
43+ spin. stop ( ) ;
44+ match start_problem {
45+ Ok ( message) => println ! ( "{}\n \n Happy coding :)" , message) ,
46+ Err ( e) => eprintln ! ( "Error starting problem: {}" , e) ,
47+ }
3448 } ,
3549 Commands :: Test {
3650 id,
3751 path_to_file,
3852 } => {
53+ let mut spin = spin_the_spinner ( "Running tests..." ) ;
3954 let test_result =
40- api_runner. test_response ( * id, path_to_file. clone ( ) ) . await ?;
41- println ! ( "Test result: {}" , test_result) ;
55+ api_runner. test_response ( * id, path_to_file. clone ( ) ) . await ;
56+ spin. stop ( ) ;
57+ match test_result {
58+ Ok ( result) => println ! ( "Test result: {}" , result) ,
59+ Err ( e) => eprintln ! ( "Error running tests: {}" , e) ,
60+ }
4261 } ,
4362 Commands :: Submit {
4463 id,
4564 path_to_file,
4665 } => {
47- let submit_result = api_runner
48- . submit_response ( * id, path_to_file. clone ( ) )
49- . await ?;
50- println ! ( "Submit result: {}" , submit_result) ;
66+ let mut spin = spin_the_spinner ( "Submitting solution..." ) ;
67+ let submit_result =
68+ api_runner. submit_response ( * id, path_to_file. clone ( ) ) . await ;
69+ spin. stop ( ) ;
70+ match submit_result {
71+ Ok ( result) => println ! ( "Submit result: {}" , result) ,
72+ Err ( e) => eprintln ! ( "Error submitting solution: {}" , e) ,
73+ }
5174 } ,
5275 }
5376 Ok ( ( ) )
0 commit comments