qubit-fs 0.2.2

Provider-neutral synchronous and asynchronous filesystem abstraction for Rust
Documentation
// =============================================================================
//    Copyright (c) 2026 Haixing Hu.
//
//    SPDX-License-Identifier: Apache-2.0
//
//    Licensed under the Apache License, Version 2.0.
// =============================================================================
// facade.
//! Provider-side synchronous directory enumeration sessions.

use crate::error::FsResult;
use crate::metadata::DirEntry;

/// Provider directory enumeration session.
///
/// # Examples
///
/// ```
/// use qubit_fs::spi::DirectoryStreamSpi;
///
/// fn accepts_session<T: DirectoryStreamSpi>() {}
/// ```
pub trait DirectoryStreamSpi: Send {
    /// Returns the next lazy directory entry.
    ///
    /// # Returns
    /// `Some(entry)` for the next item or `None` after enumeration completes.
    ///
    /// # Errors
    /// Returns a provider enumeration failure with filesystem context.
    fn next_entry(&mut self) -> FsResult<Option<DirEntry>>;
}