Skip to main content

from_xml_files_concurrent

Function from_xml_files_concurrent 

Source
pub async fn from_xml_files_concurrent<'a, I, P>(
    paths: I,
    config: &FromXmlConfig,
    concurrency: usize,
) -> Vec<Result<Document, String>>
where I: IntoIterator<Item = P>, P: AsRef<Path> + Send + 'a,
Expand description

Process multiple XML files concurrently

Returns results in the same order as input paths.

§Examples

use hedl_xml::async_api::from_xml_files_concurrent;
use hedl_xml::FromXmlConfig;

let paths = vec!["file1.xml", "file2.xml", "file3.xml"];
let config = FromXmlConfig::default();

let results = from_xml_files_concurrent(&paths, &config, 4).await;

for (path, result) in paths.iter().zip(results.iter()) {
    match result {
        Ok(doc) => println!("{}: {} items", path, doc.root.len()),
        Err(e) => eprintln!("{}: error - {}", path, e),
    }
}

§Arguments

  • paths - Iterator of file paths to process
  • config - Configuration for XML parsing
  • concurrency - Maximum number of concurrent operations