parlov 0.3.0

HTTP oracle detection tool — systematic probing for RFC-compliant information leakage.
//! parlov binary entry point.
//!
//! Thin dispatch layer: parse CLI arguments, hand off to the appropriate oracle pipeline.
//! All logic lives in library crates; `main` is kept minimal by design.

#![deny(clippy::all)]
#![warn(clippy::pedantic)]

mod cli;
mod existence;
mod scan;
mod util;

use clap::Parser;
use cli::{Cli, Command};

#[tokio::main]
async fn main() {
    let cli = Cli::parse();

    let result = match cli.command {
        Command::Existence(args) => existence::run(args).await,
        Command::Scan(args) => scan::run(args).await,
    };

    if let Err(e) = result {
        eprintln!("error: {e}");
        std::process::exit(1);
    }
}