@@ -21,48 +21,68 @@ fn main() -> Result<()> {
2121 } ) ?;
2222
2323 for msg in & conn. receiver {
24- match msg {
25- Message :: Request ( req) => match req {
24+ if let Message :: Request ( ref req) = msg {
25+ match server. handle_shutdown ( & conn, req) {
26+ Err ( err) => tracing:: error!( "Failure to shutdown server {:#?}" , err) ,
27+ Ok ( should_break) => {
28+ if should_break {
29+ tracing:: info!( "Shutdown" ) ;
30+ break ;
31+ }
32+ }
33+ } ;
34+ }
35+
36+ if let Err ( err) = handle_message ( & mut server, & conn, msg) {
37+ tracing:: error!( "{:?}" , err) ;
38+ }
39+ }
40+
41+ io_threads. join ( ) ?;
42+ tracing:: info!( "Ended" ) ;
43+ Ok ( ( ) )
44+ }
45+
46+ fn handle_message ( server : & mut BuildServer , conn : & Connection , msg : Message ) -> Result < ( ) > {
47+ match msg {
48+ Message :: Request ( req) => {
49+ match req {
2650 Request :: WorkspaceBuildTargets ( id) => {
27- server. workspace_build_targets ( & conn, id) ?;
51+ // WorkspaceBuildTargets
52+ server. workspace_build_targets ( & conn, id)
2853 }
2954 Request :: BuildTargetSources ( id, value) => {
30- server. build_target_sources ( & conn, id, value) ?;
55+ // BuildTargetSources
56+ server. build_target_sources ( & conn, id, value)
3157 }
3258 Request :: Custom ( id, method, params) => match method {
3359 OptionsChangedRequest :: METHOD => {
34- server. register_for_changes ( & conn, id, params. try_into ( ) ?) ?;
60+ // OptionsChangedRequest
61+ server. register_for_changes ( & conn, id, params. try_into ( ) ?)
3562 }
3663 OptionsRequest :: METHOD => {
37- server. sourcekit_options ( & conn, id, params. try_into ( ) ?) ?;
64+ // OptionsRequest
65+ server. sourcekit_options ( & conn, id, params. try_into ( ) ?)
3866 }
3967 BuildTargetOutputPathsRequest :: METHOD => {
40- server. output_paths ( & conn, id, params. try_into ( ) ?) ?;
41- }
42- method => {
43- server. default_response ( & conn, & id, method, params) ?;
68+ // BuildTargetOutputPathsRequest
69+ server. output_paths ( & conn, id, params. try_into ( ) ?)
4470 }
71+ method => server. default_response ( & conn, & id, method, params) ,
4572 } ,
46- Request :: Shutdown ( _) => {
47- server. handle_shutdown ( & conn, & req) ?;
48- break ;
49- }
5073 _ => {
5174 let ( id, method, params) = ( req. id ( ) , req. method ( ) , req. params ( ) ?) ;
52- server. default_response ( & conn, id, method, params) ? ;
75+ server. default_response ( & conn, id, method, params)
5376 }
54- } ,
55-
56- Message :: Response ( _) => {
57- tracing:: warn!( "skipping \n \n {:?}\n " , msg) ;
58- }
59- Message :: Notification ( _) => {
60- tracing:: warn!( "skipping \n \n {:?}\n " , msg) ;
6177 }
6278 }
79+ Message :: Response ( _) => {
80+ tracing:: warn!( "skipping \n \n {:?}\n " , msg) ;
81+ Ok ( ( ) )
82+ }
83+ Message :: Notification ( _) => {
84+ tracing:: warn!( "skipping \n \n {:?}\n " , msg) ;
85+ Ok ( ( ) )
86+ }
6387 }
64-
65- io_threads. join ( ) ?;
66- tracing:: info!( "Ended" ) ;
67- Ok ( ( ) )
6888}
0 commit comments