.take(if args.full_solution { usize::MAX } else { 1 }) // Take only first if we don't want full solution
fn handle_reachable(cli: &Cli, args: &ReachableArgs, timing: &mut Timing) -> Result<(), MercError> {
let (reachable_game, mapping) = timing.measure("compute_reachable", || compute_reachable(&game));
let (reachable_game, mapping) = timing.measure("compute_reachable_vpg", || compute_reachable(&game));
/// Projects a feature transition system to a set of transition systems and writes them to output.
fn handle_project(cli: &Cli, args: &ProjectArgs, timing: &mut Timing) -> Result<(), MercError> {
.ok_or_else(|| format!("Unknown featured transition system format for '{}'.", args.filename.display()))?;
fn handle_project_vpg(cli: &Cli, args: &ProjectVpgArgs, timing: &mut Timing) -> Result<(), MercError> {
.ok_or_else(|| format!("Unknown labelled transition system format for '{}'.", args.labelled_transition_system.display()))?;
let formula_spec = UntypedStateFrmSpec::parse(&read_to_string(&args.formula_filename).map_err(|e| {
let formula_spec = UntypedStateFrmSpec::parse(&read_to_string(&args.formula_filename).map_err(|e| {
fn handle_display(cli: &Cli, args: &DisplayArgs, timing: &mut Timing) -> Result<(), MercError> {