summaryrefslogtreecommitdiff
path: root/rola-bucket/src/protocol/placeholder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rola-bucket/src/protocol/placeholder.rs')
-rw-r--r--rola-bucket/src/protocol/placeholder.rs45
1 files changed, 45 insertions, 0 deletions
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!()
+ }
+}