use comfy_table::Table; use osv::client; use osv::schema::Ecosystem::PyPI; use textwrap::termwidth; #[tokio::main] async fn main() -> Result<(), client::ApiError> { if let Some(vulns) = client::query_package("jinja2", "2.4.1", PyPI).await? { let default = String::from("-"); let linewrap = (termwidth() as f32 / 3.0 * 2.0).round() as usize; let mut table = Table::new(); table.set_header(vec!["Vulnerability ID", "Details"]); for vuln in &vulns { let details = vuln.details.as_ref().unwrap_or(&default); let details = textwrap::wrap(details, linewrap).join("\n"); table.add_row(vec![&vuln.id, &details]); } println!("{table}"); } Ok(()) }