use crate::error::MeowError;
use super::{PresignedMultipartUploadPlan, PresignedUploadedPart};
pub trait PresignedCompletionBodyBuilder: Send + Sync {
fn build_body(
&self,
plan: &PresignedMultipartUploadPlan,
uploaded_parts: &[PresignedUploadedPart],
) -> Result<Vec<u8>, MeowError>;
}
impl<F> PresignedCompletionBodyBuilder for F
where
F: Fn(&PresignedMultipartUploadPlan, &[PresignedUploadedPart]) -> Result<Vec<u8>, MeowError>
+ Send
+ Sync,
{
fn build_body(
&self,
plan: &PresignedMultipartUploadPlan,
uploaded_parts: &[PresignedUploadedPart],
) -> Result<Vec<u8>, MeowError> {
self(plan, uploaded_parts)
}
}