Skip to main content

qubit_fs/spi/
async_directory_stream_session.rs

1// =============================================================================
2//    Copyright (c) 2026 Haixing Hu.
3//
4//    SPDX-License-Identifier: Apache-2.0
5//
6//    Licensed under the Apache License, Version 2.0.
7// =============================================================================
8//! Provider-side asynchronous directory enumeration sessions.
9
10use super::SpiFuture;
11use crate::error::FsResult;
12use crate::metadata::DirEntry;
13
14/// Provider session underlying a concrete
15/// [`crate::directory::AsyncDirectoryStream`].
16///
17/// # Examples
18///
19/// ```
20/// use qubit_fs::spi::AsyncDirectoryStreamSession;
21///
22/// fn accepts_session<T: AsyncDirectoryStreamSession>() {}
23/// ```
24pub trait AsyncDirectoryStreamSession: Send {
25    /// Asynchronously reads the next directory entry or provider page.
26    ///
27    /// # Returns
28    /// A future resolving to one entry or `None` at end of enumeration.
29    fn next_entry_async(&mut self) -> SpiFuture<'_, FsResult<Option<DirEntry>>>;
30}