Add macro to combine features with optional values

This commit is contained in:
Eric Förster 2019-05-01 14:10:32 +02:00
parent 2ead53b00c
commit a0f2aba67a

View file

@ -32,6 +32,23 @@ macro_rules! concat_feature {
}};
}
#[macro_export]
macro_rules! choice_feature {
($request:expr) => {
None
};
($request:expr, $provider:tt, $($providers:tt),*) => {{
$(
let value = await!($provider::execute($request));
if value.is_some() {
value
} else {
choice_feature!($request, $(providers),*)
}
)+
}};
}
#[cfg(test)]
use lsp_types::*;