vortex_io/compat/
read_at.rs1use std::sync::Arc;
5
6use futures::FutureExt;
7use futures::StreamExt;
8use futures::future::BoxFuture;
9use vortex_array::buffer::BufferHandle;
10use vortex_buffer::Alignment;
11use vortex_error::VortexResult;
12
13use crate::CoalesceConfig;
14use crate::ReadAtRequest;
15use crate::ReadAtStream;
16use crate::VortexReadAt;
17use crate::compat::Compat;
18
19#[deny(clippy::missing_trait_methods)]
21impl<R: VortexReadAt> VortexReadAt for Compat<R> {
22 fn uri(&self) -> Option<&Arc<str>> {
23 self.inner().uri()
24 }
25
26 fn coalesce_config(&self) -> Option<CoalesceConfig> {
27 self.inner().coalesce_config()
28 }
29
30 fn concurrency(&self) -> usize {
31 self.inner().concurrency()
32 }
33
34 fn size(&self) -> BoxFuture<'static, VortexResult<u64>> {
35 Compat::new(self.inner().size()).boxed()
36 }
37
38 fn read_at(
39 &self,
40 offset: u64,
41 length: usize,
42 alignment: Alignment,
43 ) -> BoxFuture<'static, VortexResult<BufferHandle>> {
44 Compat::new(self.inner().read_at(offset, length, alignment)).boxed()
45 }
46
47 fn read_ranges(&self, requests: Arc<[ReadAtRequest]>) -> ReadAtStream {
48 Compat::new(self.inner().read_ranges(requests)).boxed()
49 }
50}