/* * Copyright Stalwart Labs Ltd. See the COPYING * file at the top-level directory of this distribution. * * Licensed under the Apache License, Version 2.0 or the MIT license * , at your * option. This file may not be copied, modified, or distributed * except according to those terms. */ use crate::{ client::Client, core::request::{Arguments, Request}, Method, }; use super::copy::{CopyBlobRequest, CopyBlobResponse}; impl Client { pub fn blob_copy( &self, from_account_id: impl Into, blob_id: impl Into, ) -> crate::Result { let blob_id = blob_id.into(); let mut request = self.build(); request.copy_blob(from_account_id).blob_id(&blob_id); request.send_single::()?.copied(&blob_id) } } impl Request<'_> { pub fn copy_blob(&mut self, from_account_id: impl Into) -> &mut CopyBlobRequest { self.add_method_call( Method::CopyBlob, Arguments::blob_copy(self.params(Method::CopyBlob), from_account_id.into()), ) .blob_copy_mut() } pub fn send_copy_blob(self) -> crate::Result { self.send_single() } }