Consolidate ExpansionConfig feature tests
This commit is contained in:
parent
4d716decb5
commit
63ee3fe566
1 changed files with 20 additions and 40 deletions
|
@ -1447,6 +1447,19 @@ pub struct ExpansionConfig<'feat> {
|
||||||
pub recursion_limit: usize,
|
pub recursion_limit: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro_rules! feature_tests {
|
||||||
|
($( fn $getter:ident = $field:ident, )*) => {
|
||||||
|
$(
|
||||||
|
pub fn $getter(&self) -> bool {
|
||||||
|
match self.features {
|
||||||
|
Some(&Features { $field: true, .. }) => true,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)*
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<'feat> ExpansionConfig<'feat> {
|
impl<'feat> ExpansionConfig<'feat> {
|
||||||
pub fn default(crate_name: String) -> ExpansionConfig<'static> {
|
pub fn default(crate_name: String) -> ExpansionConfig<'static> {
|
||||||
ExpansionConfig {
|
ExpansionConfig {
|
||||||
|
@ -1456,46 +1469,13 @@ impl<'feat> ExpansionConfig<'feat> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn enable_quotes(&self) -> bool {
|
feature_tests! {
|
||||||
match self.features {
|
fn enable_quotes = allow_quote,
|
||||||
Some(&Features { allow_quote: true, .. }) => true,
|
fn enable_asm = allow_asm,
|
||||||
_ => false,
|
fn enable_log_syntax = allow_log_syntax,
|
||||||
}
|
fn enable_concat_idents = allow_concat_idents,
|
||||||
}
|
fn enable_trace_macros = allow_trace_macros,
|
||||||
|
fn enable_allow_internal_unstable = allow_internal_unstable,
|
||||||
pub fn enable_asm(&self) -> bool {
|
|
||||||
match self.features {
|
|
||||||
Some(&Features { allow_asm: true, .. }) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn enable_log_syntax(&self) -> bool {
|
|
||||||
match self.features {
|
|
||||||
Some(&Features { allow_log_syntax: true, .. }) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn enable_concat_idents(&self) -> bool {
|
|
||||||
match self.features {
|
|
||||||
Some(&Features { allow_concat_idents: true, .. }) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn enable_trace_macros(&self) -> bool {
|
|
||||||
match self.features {
|
|
||||||
Some(&Features { allow_trace_macros: true, .. }) => true,
|
|
||||||
_ => false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn enable_allow_internal_unstable(&self) -> bool {
|
|
||||||
match self.features {
|
|
||||||
Some(&Features { allow_internal_unstable: true, .. }) => true,
|
|
||||||
_ => false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue