Lines Matching refs:CfgExpr
7 pub enum CfgExpr {
10 All(Vec<CfgExpr>),
11 Any(Vec<CfgExpr>),
12 Not(Box<CfgExpr>),
15 impl CfgExpr {
16 pub fn merge(&mut self, expr: CfgExpr) {
17 if let CfgExpr::Unconditional = self {
19 } else if let CfgExpr::All(list) = self {
22 let prev = mem::replace(self, CfgExpr::Unconditional);
23 *self = CfgExpr::All(vec![prev, expr]);
28 pub fn parse_attribute(attr: &Attribute) -> Result<CfgExpr> {
36 fn parse_single(input: ParseStream) -> Result<CfgExpr> {
44 Ok(CfgExpr::All(list))
47 Ok(CfgExpr::Any(list))
51 Ok(CfgExpr::Not(Box::new(expr)))
58 Ok(CfgExpr::Eq(ident, Some(string)))
60 Ok(CfgExpr::Eq(ident, None))
66 fn parse_multiple(input: ParseStream) -> Result<Vec<CfgExpr>> {