git.delta.rocks / jrsonnet / refs/commits / 976458d0908d

difftreelog

fix build with all features

lotntrwlYaroslav Bolyukin2026-03-23parent: #b828464.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth
64pub(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());
6970
70 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 }
modifiedcrates/jrsonnet-peg-parser/src/lib.rsdiffbeforeafterboth
100 ) {(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) -> Destruct
111 = "{" _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) -> Destruct
125 = 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}