summaryrefslogtreecommitdiff
path: root/rola-bucket
diff options
context:
space:
mode:
Diffstat (limited to 'rola-bucket')
-rw-r--r--rola-bucket/src/protocol.rs3
-rw-r--r--rola-bucket/src/protocol/placeholder.rs45
2 files changed, 48 insertions, 0 deletions
diff --git a/rola-bucket/src/protocol.rs b/rola-bucket/src/protocol.rs
index 5523176..ba50a42 100644
--- a/rola-bucket/src/protocol.rs
+++ b/rola-bucket/src/protocol.rs
@@ -8,6 +8,9 @@ pub use error::*;
mod local_fs;
pub use local_fs::*;
+mod placeholder;
+pub use placeholder::*;
+
/// Request used in [BucketTransferProtocol] or [AsyncBucketTransferProtocol]
pub struct UploadToBucketRequest<'a, ExtraInfo>
where
diff --git a/rola-bucket/src/protocol/placeholder.rs b/rola-bucket/src/protocol/placeholder.rs
new file mode 100644
index 0000000..6fd5a10
--- /dev/null
+++ b/rola-bucket/src/protocol/placeholder.rs
@@ -0,0 +1,45 @@
+use crate::BucketTransferProtocol;
+
+/// A placeholder implementation of the bucket transfer protocol.
+///
+/// This struct serves as a temporary or stub implementation of
+/// [`BucketTransferProtocol`], intended for use in contexts where
+/// actual data transfer is not required (e.g., testing, scaffolding,
+/// or as a default before a real implementation is provided).
+///
+/// Calling any of the transfer methods on this implementation will
+/// result in a panic with `unreachable!()`, signaling that the
+/// placeholder should be replaced before use.
+pub struct NoProtocol;
+
+impl BucketTransferProtocol for NoProtocol {
+ type ExtraInfo = ();
+
+ fn upload_to_bucket(
+ &self,
+ _req: &super::UploadToBucketRequest<Self::ExtraInfo>,
+ ) -> Result<(), super::BucketTransferProtocolError> {
+ unreachable!()
+ }
+
+ fn download_from_bucket(
+ &self,
+ _req: &super::DownloadFromBucketRequest<Self::ExtraInfo>,
+ ) -> Result<(), super::BucketTransferProtocolError> {
+ unreachable!()
+ }
+
+ fn transfer_to_client(
+ &self,
+ _req: &super::TransferToClientRequest<Self::ExtraInfo>,
+ ) -> Result<(), super::BucketTransferProtocolError> {
+ unreachable!()
+ }
+
+ fn receive_from_client(
+ &self,
+ _req: &super::ReceiveFromClientRequest<Self::ExtraInfo>,
+ ) -> Result<(), super::BucketTransferProtocolError> {
+ unreachable!()
+ }
+}