file_storage/op/file/write/
write_op.rs1use crate::system::LocalWriteOp;
2use std::io::Write;
3
4pub struct WriteOp {
6 pub(crate) inner: WriteOpInner,
7}
8
9pub(crate) enum WriteOpInner {
11 Local(LocalWriteOp),
13}
14
15impl Write for WriteOp {
16 fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
17 match &mut self.inner {
18 WriteOpInner::Local(op) => op.write(buf),
19 }
20 }
21
22 fn flush(&mut self) -> std::io::Result<()> {
23 match &mut self.inner {
24 WriteOpInner::Local(op) => op.flush(),
25 }
26 }
27}
28
29impl WriteOp {
30 pub fn close(self) -> Result<(), std::io::Error> {
34 match self.inner {
35 WriteOpInner::Local(op) => op.close(),
36 }
37 }
38}