mangadex_api_schema_rust/v5/
upload_session_file.rs1use mangadex_api_types::{RelationshipType, ResultType, UploadSource};
4use serde::Deserialize;
5
6use crate::{TypedAttributes, error::MangaDexError};
7
8#[derive(Clone, Debug, Deserialize, Default)]
9#[serde(rename_all = "camelCase")]
10#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
11#[non_exhaustive]
12#[cfg_attr(feature = "specta", derive(specta::Type))]
13pub struct UploadSessionFileAttributes {
14 pub original_file_name: String,
15 pub file_hash: String,
16 pub file_size: u32,
17 pub mime_type: String,
18 pub source: UploadSource,
19 pub version: u32,
20}
21
22impl TypedAttributes for UploadSessionFileAttributes {
23 const TYPE_: mangadex_api_types::RelationshipType = RelationshipType::UploadSessionFile;
24}
25
26#[derive(Clone, Debug, Deserialize)]
27#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
28#[cfg_attr(feature = "specta", derive(specta::Type))]
29#[non_exhaustive]
30pub struct UploadSessionFileData<A> {
31 #[serde(default)]
32 pub result: ResultType,
33 pub errors: Vec<MangaDexError>,
34 pub data: Vec<A>,
35}
36
37impl<A> Default for UploadSessionFileData<A> {
38 fn default() -> Self {
39 Self {
40 result: ResultType::Ok,
41 errors: Vec::default(),
42 data: Vec::default(),
43 }
44 }
45}