cvssrust 1.1.0

Rust implementation of the Common Vulnerability Scoring System (v2 / v3.0 / v3.1)
Documentation
use cvssrust::{CVSSScore, CVSS};
use std::env;

fn main() {
    let vector = env::args().skip(1).next().expect("Provide CVSS vector");

    match CVSS::parse(vector.as_str()) {
        Ok(CVSS::V3(cvss)) => {
            println!("CVSS v3 vector: {}", cvss.to_string());
            println!("CVSS Base score: {}", cvss.base_score().value());
            println!("CVSS Base severity: {}", cvss.base_score().severity());
            println!("Impact Subscore: {}", cvss.impact_score().value());
            println!(
                "Exploitability Subscore: {}",
                cvss.expoitability_score().value()
            );
            println!("CVSS Temporal score: {}", cvss.temporal_score().value());
            println!(
                "CVSS Environmental score: {}",
                cvss.environmental_score().value()
            );
            println!(
                "Modified Impact Subscore: {}",
                cvss.modified_impact_score().value()
            );
            println!(
                "Modified Exploitability Subscore: {}",
                cvss.modified_exploitability_score().value()
            );
        }
        Ok(CVSS::V2(cvss)) => {
            println!("CVSS v2 vector: {}", cvss.to_string());
            println!("CVSS Base score: {}", cvss.base_score().value());
            println!("CVSS Base severity: {}", cvss.base_score().severity());
            println!("Impact Subscore: {}", cvss.impact_score().value());
            println!(
                "Exploitability Subscore: {}",
                cvss.expoitability_score().value()
            );
            println!("CVSS Temporal score: {}", cvss.temporal_score().value());
            println!(
                "CVSS Environmental score: {}",
                cvss.environmental_score().value()
            );
        }
        _ => println!("Could not parse the CVSS vector"),
    }
}