file_storage/op/file/read/
read_op.rs

1use std::io::Read;
2
3/// A read operation.
4pub struct ReadOp {
5    pub(crate) inner: ReadOpInner,
6}
7
8/// A file-system-specific read operation.
9pub(crate) enum ReadOpInner {
10    /// A local read operation.
11    Local(crate::LocalReadOp),
12
13    /// A cloudflare r2 read operation.
14    #[cfg(feature = "r2")]
15    R2(crate::R2ReadOp),
16}
17
18impl Read for ReadOp {
19    //! Read
20
21    /// See `std::io::Read::read`.
22    fn read(&mut self, target: &mut [u8]) -> std::io::Result<usize> {
23        match &mut self.inner {
24            ReadOpInner::Local(op) => op.read(target),
25            #[cfg(feature = "r2")]
26            ReadOpInner::R2(op) => op.read(target),
27        }
28    }
29}