Skip to main content

kithara_storage/backend/resource/
ops.rs

1#![forbid(unsafe_code)]
2
3use std::{ops::Range, path::Path};
4
5use super::state::Resource;
6use crate::{
7    StorageResult,
8    backend::traits::DriverIo,
9    resource::{ResourceExt, ResourceStatus, WaitOutcome},
10};
11
12impl<D: DriverIo> ResourceExt for Resource<D> {
13    fn commit(&self, final_len: Option<u64>) -> StorageResult<()> {
14        self.commit_inner(final_len)
15    }
16
17    fn contains_range(&self, range: Range<u64>) -> bool {
18        self.contains_range_inner(range)
19    }
20
21    fn fail(&self, reason: String) {
22        self.fail_inner(reason);
23    }
24
25    fn len(&self) -> Option<u64> {
26        self.len_inner()
27    }
28
29    fn next_gap(&self, from: u64, limit: u64) -> Option<Range<u64>> {
30        self.next_gap_inner(from, limit)
31    }
32
33    fn path(&self) -> Option<&Path> {
34        self.path_inner()
35    }
36
37    fn reactivate(&self) -> StorageResult<()> {
38        self.reactivate_inner()
39    }
40
41    fn read_at(&self, offset: u64, buf: &mut [u8]) -> StorageResult<usize> {
42        self.read_at_inner(offset, buf)
43    }
44
45    fn status(&self) -> ResourceStatus {
46        self.status_inner()
47    }
48
49    fn wait_range(&self, range: Range<u64>) -> StorageResult<WaitOutcome> {
50        self.wait_range_inner(range)
51    }
52
53    fn write_at(&self, offset: u64, data: &[u8]) -> StorageResult<()> {
54        self.write_at_inner(offset, data)
55    }
56}