krabka_remote_storage/s3/
manager.rs1use {
9 super::S3RemoteStorage,
10 crate::{
11 error::RemoteStorageError,
12 metadata::{CustomMetadata, RemoteLogSegmentMetadata},
13 storage_manager::{IndexType, LogSegmentData, RemoteStorageManager},
14 },
15};
16
17impl RemoteStorageManager for S3RemoteStorage {
18 #[krabka_macros::remote_operation]
19 fn copy_log_segment_data(
20 &self,
21 metadata: &RemoteLogSegmentMetadata,
22 data: &LogSegmentData,
23 ) -> Result<Option<CustomMetadata>, RemoteStorageError> {
24 self.copy_segment_objects(metadata, data)
25 }
26
27 #[krabka_macros::remote_operation]
28 fn fetch_log_segment(
29 &self,
30 metadata: &RemoteLogSegmentMetadata,
31 start_position: u32,
32 end_position: Option<u32>,
33 ) -> Result<Vec<u8>, RemoteStorageError> {
34 self.fetch_segment_range(metadata, start_position, end_position)
35 }
36
37 #[krabka_macros::remote_operation]
38 fn fetch_index(
39 &self,
40 metadata: &RemoteLogSegmentMetadata,
41 index_type: IndexType,
42 ) -> Result<Vec<u8>, RemoteStorageError> {
43 self.fetch_index_bytes(metadata, index_type)
44 }
45
46 #[krabka_macros::remote_operation]
47 fn delete_log_segment_data(
48 &self,
49 metadata: &RemoteLogSegmentMetadata,
50 ) -> Result<(), RemoteStorageError> {
51 self.delete_segment_objects(metadata)
52 }
53}