difftreelog
fix build with all features
in: master
2 files changed
crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth64pub(crate) fn parse_jsonnet(code: &str, source: Source) -> Result<Expr, SyntaxError> {64pub(crate) fn parse_jsonnet(code: &str, source: Source) -> Result<Expr, SyntaxError> {65 #[cfg(feature = "peg-parser")]65 #[cfg(feature = "peg-parser")]66 {66 {67 use std::sync::LazyLock;67 static USE_LEGACY_PARSER: LazyLock<bool> =68 static USE_LEGACY_PARSER: LazyLock<bool> =68 LazyLock::new(|| std::env::var_os("JRSONNET_LEGACY_PARSER").is_some());69 LazyLock::new(|| std::env::var_os("JRSONNET_LEGACY_PARSER").is_some());697070 if USE_LEGACY_PARSER {71 if *USE_LEGACY_PARSER {71 return parse_peg(code, source);72 return parse_peg(code, source);72 }73 }73 }74 }crates/jrsonnet-peg-parser/src/lib.rsdiffbeforeafterboth100 ) {(rest, end)}100 ) {(rest, end)}101 / comma()? {(None, Vec::new())}101 / comma()? {(None, Vec::new())}102 ) _ "]" {?102 ) _ "]" {?103 #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Array {103 #[cfg(feature = "exp-destruct")] return Ok(Destruct::Array {104 start,104 start,105 rest: rest.0,105 rest: rest.0,106 end: rest.1,106 end: rest.1,109 }109 }110 pub rule destruct_object(s: &ParserSettings) -> Destruct110 pub rule destruct_object(s: &ParserSettings) -> Destruct111 = "{" _111 = "{" _112 fields:(name:id() into:(_ ":" _ into:destruct(s) {into})? default:(_ "=" _ v:expr(s) {v})? {(name, into, default.map(Rc::new))})**comma()112 fields:(name:id() into:(_ ":" _ into:destruct(s) {into})? default:(_ "=" _ v:spanned(<expr(s)>, s) {v})? {(name, into, default.map(Rc::new))})**comma()113 rest:(113 rest:(114 comma() rest:destruct_rest()? {rest}114 comma() rest:destruct_rest()? {rest}115 / comma()? {None}115 / comma()? {None}116 )116 )117 _ "}" {?117 _ "}" {?118 #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Object {118 #[cfg(feature = "exp-destruct")] return Ok(Destruct::Object {119 fields,119 fields,120 rest,120 rest,121 });121 });124 pub rule destruct(s: &ParserSettings) -> Destruct124 pub rule destruct(s: &ParserSettings) -> Destruct125 = v:id() {Destruct::Full(v)}125 = v:id() {Destruct::Full(v)}126 / "?" {?126 / "?" {?127 #[cfg(feature = "exp-destruct")] return Ok(expr::Destruct::Skip);127 #[cfg(feature = "exp-destruct")] return Ok(Destruct::Skip);128 #[cfg(not(feature = "exp-destruct"))] Err("!!!experimental destructuring was not enabled")128 #[cfg(not(feature = "exp-destruct"))] Err("!!!experimental destructuring was not enabled")129 }129 }130 / arr:destruct_array(s) {arr}130 / arr:destruct_array(s) {arr}