goran/lib.rs
1#![deny(clippy::all)]
2#![warn(clippy::pedantic)]
3#![warn(clippy::nursery)]
4#![allow(clippy::unsafe_derive_deserialize)]
5#![allow(clippy::cast_precision_loss)]
6#![allow(clippy::struct_excessive_bools)]
7
8use anyhow::Result;
9
10mod app;
11mod cli;
12pub mod providers;
13mod results;
14mod steps;
15mod user_config;
16
17/// Runs the main application logic.
18///
19/// This function parses command-line arguments, initializes the application state,
20/// executes the requested analysis steps (like Geolocation, WHOIS), and prints
21/// the results.
22///
23/// # Errors
24///
25/// Returns an error if initialization fails (e.g., building the HTTP client) or
26/// if printing the final results in JSON format fails.
27pub async fn run() -> Result<()> {
28 let mut app = app::App::new()?;
29
30 app.run().await
31}