mod byte_ranges;
mod error;
mod multipart;
pub const MULTIPART_FILE_PART_SIZE: u64 = 50 * 1024 * 1024;
pub use crate::request::files::multipart::ContentRange;
pub use byte_ranges::{byte_ranges, ByteRanges};
pub use error::{Error, ErrorKind};
pub use multipart::MultipartUploader;
use crate::client::Client;
use crate::types::files::multipart::UploadId;
use crate::types::id::{GameId, ModId};
use multipart::{Init, Started};
pub trait MultipartUpload: private::Sealed {
fn upload<'a>(
&'a self,
game_id: GameId,
mod_id: ModId,
filename: &'a str,
) -> MultipartUploader<'a, Init<'a>>;
fn upload_for(
&self,
game_id: GameId,
mod_id: ModId,
upload_id: UploadId,
) -> MultipartUploader<'_, Started<'_>>;
}
impl MultipartUpload for Client {
fn upload<'a>(
&'a self,
game_id: GameId,
mod_id: ModId,
filename: &'a str,
) -> MultipartUploader<'a, Init<'a>> {
MultipartUploader::init(self, game_id, mod_id, filename)
}
fn upload_for(
&self,
game_id: GameId,
mod_id: ModId,
upload_id: UploadId,
) -> MultipartUploader<'_, Started<'_>> {
MultipartUploader::started(self, game_id, mod_id, upload_id)
}
}
mod private {
use crate::Client;
pub trait Sealed {}
impl Sealed for Client {}
}