if Some(resp.id) == loop_state.configuration_request_id {
loop_state.configuration_request_id = None;
- if let Some(err) = resp.error {
- log::error!("failed to fetch the server settings: {:?}", err)
- } else if let Some(result) = resp.result {
- let new_config = serde_json::from_value::<Vec<ServerConfig>>(result)?
- .first()
- .expect("The client is expected to always send a non-empty config data")
- .to_owned();
- world_state.update_configuration(
- new_config.lru_capacity,
- get_options(&new_config, text_document_caps),
- get_feature_flags(&new_config, connection),
- );
- } else {
- log::error!("received empty server settings response from the client")
+ let Response { error, result, .. } = resp;
+ match (error, result) {
+ (Some(err), _) => {
+ log::error!("failed to fetch the server settings: {:?}", err)
+ }
+ (None, Some(result)) => {
+ let new_config = serde_json::from_value::<Vec<ServerConfig>>(result)?
+ .first()
+ .expect(
+ "The client is expected to always send a non-empty config data",
+ )
+ .to_owned();
+ world_state.update_configuration(
+ new_config.lru_capacity,
+ get_options(&new_config, text_document_caps),
+ get_feature_flags(&new_config, connection),
+ );
+ }
+ (None, None) => {
+ log::error!("received empty server settings response from the client")
+ }
}
}
}