kithara_storage/backend/resource/
ops.rs1#![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}