// use std::{fs::Metadata, path::PathBuf};

// use anyhow::Context;
// use glob::glob;
// use log::warn;
// use rayon::prelude::*;

// pub struct VariantsCollection {
//     pub data: Vec<VariantsCase>,
// }
//
// #[derive(Debug)]
// pub struct VariantsCase {
//     pub path: PathBuf,
//     pub id: String,
//     pub file_metadata: Metadata,
// }
//
// impl VariantsCase {
//     pub fn new(path: PathBuf) -> anyhow::Result<Self> {
//         let id = path
//             .ancestors()
//             .nth(2)
//             .and_then(|p| p.file_name())
//             .and_then(|name| name.to_str())
//             .map(String::from)
//             .context(format!(
//                 "Invalid path structure: unable to extract ID for {}",
//                 path.display()
//             ))?;
//
//         let file_metadata = path.metadata().context(format!(
//             "Failed to read file metadata for {}",
//             path.display()
//         ))?;
//
//         Ok(VariantsCase {
//             path,
//             id,
//             file_metadata,
//         })
//     }
// }

// impl VariantsCollection {
//     pub fn new(result_dir: &str) -> anyhow::Result<Self> {
//         let pattern = format!("{}/*/*/*_variants.bytes.gz", result_dir);
//         let data = glob(&pattern)
//             .expect("Failed to read glob pattern")
//             .par_bridge()
//             .filter_map(|entry| {
//                 match entry {
//                     Ok(path) => match VariantsCase::new(path) {
//                         Ok(vc) => return Some(vc),
//                         Err(err) => warn!("{err}"),
//                     },
//                     Err(e) => warn!("Error: {:?}", e),
//                 }
//                 None
//             })
//             .collect();
//         Ok(VariantsCollection { data })
//     }
// }
