vortex_io/compat/
filesystem.rs1use std::sync::Arc;
5
6use async_trait::async_trait;
7use futures::StreamExt;
8use futures::stream::BoxStream;
9use vortex_error::VortexResult;
10
11use crate::VortexReadAt;
12use crate::compat::Compat;
13use crate::filesystem::FileListing;
14use crate::filesystem::FileSystem;
15
16#[deny(clippy::missing_trait_methods)]
18#[async_trait]
19impl<F: FileSystem> FileSystem for Compat<F> {
20 fn list(&self, prefix: &str) -> BoxStream<'_, VortexResult<FileListing>> {
21 Compat::new(self.inner().list(prefix)).boxed()
22 }
23
24 async fn open_read(&self, path: &str) -> VortexResult<Arc<dyn VortexReadAt>> {
25 let read_at = Compat::new(self.inner().open_read(path)).await?;
26 Ok(Arc::new(Compat::new(read_at)))
27 }
28}