webgraph-cli 0.4.1

Command line interface for the Rust port of the WebGraph framework (http://webgraph.di.unimi.it/).
Documentation
/*
 * SPDX-FileCopyrightText: 2024 Tommaso Fontana
 *
 * SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
 */

use anyhow::Result;
use clap::Subcommand;

use super::GlobalArgs;

pub mod bfs;
pub mod comp;
pub mod rand;

/// Permutation-related subcommands.
#[derive(Subcommand, Debug)]
#[command(name = "perm")]
pub enum SubCommands {
    Bfs(bfs::CliArgs),
    Comp(comp::CliArgs),
    Rand(rand::CliArgs),
}

pub fn main(global_args: GlobalArgs, subcommand: SubCommands) -> Result<()> {
    match subcommand {
        SubCommands::Bfs(args) => bfs::main(global_args, args),
        SubCommands::Comp(args) => comp::main(global_args, args),
        SubCommands::Rand(args) => rand::main(global_args, args),
    }
}