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}