Add Span to repository traversal

This commit is contained in:
2026-07-20 23:25:52 -04:00
parent 7c7a078f96
commit 22153cd19a
+4
View File
@@ -7,6 +7,7 @@ use reqwest_middleware::reqwest::Url;
use std::collections::HashSet;
use std::pin::Pin;
use std::task::{Context, Poll, ready};
use tracing::debug_span;
/// Recursively traverse an entire repository.
///
@@ -21,6 +22,7 @@ pub struct Traverse<'a> {
visited_urls: HashSet<Url>,
pending_urls: HashSet<Url>,
parallelism: Option<usize>,
span: tracing::Span,
}
impl<'a> Traverse<'a> {
@@ -35,6 +37,7 @@ impl<'a> Traverse<'a> {
visited_urls: HashSet::new(),
pending_urls: HashSet::new(),
parallelism,
span: debug_span!("Traverse Repository", %root),
};
this.visited_urls.insert(root.clone());
this.stream
@@ -89,6 +92,7 @@ impl<'a> Stream for Traverse<'a> {
type Item = crate::Result<RdfSource<Dataset>>;
fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
let _enter = self.span.clone().entered();
let result = match ready!(self.stream.poll_next_unpin(cx)) {
Some(Ok(document)) => {
self.visited_urls.insert(document.origin().clone());