difftreelog
refactor(cli) move to split stdlib
in: master
5 files changed
cmds/jrsonnet/Cargo.tomldiffbeforeafterboth15 "jrsonnet-evaluator/exp-preserve-order",15 "jrsonnet-evaluator/exp-preserve-order",16 "jrsonnet-evaluator/exp-serde-preserve-order",16 "jrsonnet-evaluator/exp-serde-preserve-order",17 "jrsonnet-cli/exp-preserve-order",17 "jrsonnet-cli/exp-preserve-order",18 "jrsonnet-cli/exp-serde-preserve-order",18]19]19# Destructuring of locals20# Destructuring of locals20exp-destruct = ["jrsonnet-evaluator/exp-destruct"]21exp-destruct = ["jrsonnet-evaluator/exp-destruct"]272828mimallocator = { version = "0.1.3", optional = true }29mimallocator = { version = "0.1.3", optional = true }29thiserror = "1.0"30thiserror = "1.0"30clap = { version = "3.1", features = ["derive"] }31clap = { version = "3.2", features = ["derive"] }31clap_complete = { version = "3.1" }32clap_complete = { version = "3.2" }3233crates/jrsonnet-cli/Cargo.tomldiffbeforeafterboth889[features]9[features]10exp-preserve-order = ["jrsonnet-evaluator/exp-preserve-order"]10exp-preserve-order = [11 "jrsonnet-evaluator/exp-preserve-order",12 "jrsonnet-stdlib/exp-preserve-order",13]14exp-serde-preserve-order = [15 "jrsonnet-evaluator/exp-serde-preserve-order",16 "jrsonnet-stdlib/exp-serde-preserve-order",17]111812[dependencies]19[dependencies]13jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.4.2", features = [20jrsonnet-evaluator = { path = "../../crates/jrsonnet-evaluator", version = "0.4.2", features = [14 "explaining-traces",21 "explaining-traces",15] }22] }16jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.4.2" }23jrsonnet-parser = { path = "../../crates/jrsonnet-parser", version = "0.4.2" }17jrsonnet-gcmodule = { version = "0.3.4" }24jrsonnet-gcmodule = { version = "0.3.4" }25jrsonnet-stdlib = { path = "../../crates/jrsonnet-stdlib", version = "0.4.2" }182619clap = { version = "3.1", features = ["derive"] }27clap = { version = "3.2", features = ["derive"] }2028crates/jrsonnet-cli/src/ext.rsdiffbeforeafterbothno changes
crates/jrsonnet-cli/src/lib.rsdiffbeforeafterboth1mod ext;1mod manifest;2mod manifest;2mod stdlib;3mod tla;3mod tla;4mod trace;4mod trace;556use std::{env, path::PathBuf};6use std::{env, path::PathBuf};778use clap::Parser;8use clap::Parser;9pub use ext::*;10use jrsonnet_evaluator::{error::Result, FileImportResolver, State};9use jrsonnet_evaluator::{error::Result, FileImportResolver, State};11use jrsonnet_gcmodule::with_thread_object_space;10use jrsonnet_gcmodule::with_thread_object_space;12pub use manifest::*;11pub use manifest::*;12pub use stdlib::*;13pub use tla::*;13pub use tla::*;14pub use trace::*;14pub use trace::*;151531#[derive(Parser)]31#[derive(Parser)]32#[clap(next_help_heading = "OPTIONS")]32#[clap(next_help_heading = "OPTIONS")]33pub struct MiscOpts {33pub struct MiscOpts {34 /// Disable standard library.35 /// By default standard library will be available via global `std` variable.36 /// Note that standard library will still be loaded37 /// if chosen manifestification method is not `none`.38 #[clap(long)]39 no_stdlib: bool,4041 /// Maximal allowed number of stack frames,34 /// Maximal allowed number of stack frames,42 /// stack overflow error will be raised if this number gets exceeded.35 /// stack overflow error will be raised if this number gets exceeded.52}45}53impl ConfigureState for MiscOpts {46impl ConfigureState for MiscOpts {54 fn configure(&self, s: &State) -> Result<()> {47 fn configure(&self, s: &State) -> Result<()> {55 if !self.no_stdlib {56 s.with_stdlib();57 }5859 let mut library_paths = self.jpath.clone();48 let mut library_paths = self.jpath.clone();60 library_paths.reverse();49 library_paths.reverse();79 #[clap(flatten)]68 #[clap(flatten)]80 tla: TLAOpts,69 tla: TLAOpts,81 #[clap(flatten)]70 #[clap(flatten)]82 ext: ExtVarOpts,71 std: StdOpts,837284 #[clap(flatten)]73 #[clap(flatten)]85 trace: TraceOpts,74 trace: TraceOpts,91 self.trace.configure(s)?;80 self.trace.configure(s)?;92 self.misc.configure(s)?;81 self.misc.configure(s)?;93 self.tla.configure(s)?;82 self.tla.configure(s)?;94 self.ext.configure(s)?;83 self.std.configure(s)?;95 Ok(())84 Ok(())96 }85 }97}86}114impl GcOpts {103impl GcOpts {115 pub fn stats_printer(&self) -> (Option<GcStatsPrinter>, Option<LeakSpace>) {104 pub fn stats_printer(&self) -> (Option<GcStatsPrinter>, Option<LeakSpace>) {116 (105 (117 self.gc_print_stats.then(|| GcStatsPrinter {106 self.gc_print_stats.then_some(GcStatsPrinter {118 collect_before_printing_stats: self.gc_collect_before_printing_stats,107 collect_before_printing_stats: self.gc_collect_before_printing_stats,119 }),108 }),120 (!self.gc_collect_on_exit).then(|| LeakSpace {}),109 (!self.gc_collect_on_exit).then_some(LeakSpace {}),121 )110 )122 }111 }123}112}crates/jrsonnet-cli/src/stdlib.rsdiffbeforeafterbothno changes