yazi/yazi-fs/src/engine/local/read_dir.rs
2026-07-13 02:01:37 +08:00

23 lines
567 B
Rust

use std::{io, sync::Arc};
use yazi_shared::url::UrlBuf;
use crate::engine::DirReader;
pub enum ReadDir {
Regular(tokio::fs::ReadDir),
Others { reader: tokio::fs::ReadDir, dir: Arc<UrlBuf> },
}
impl DirReader for ReadDir {
type Entry = super::DirEntry;
async fn next(&mut self) -> io::Result<Option<Self::Entry>> {
Ok(match self {
Self::Regular(reader) => reader.next_entry().await?.map(Self::Entry::Regular),
Self::Others { reader, dir } => {
reader.next_entry().await?.map(|entry| Self::Entry::Others { entry, dir: dir.clone() })
}
})
}
}