rosu_render/model/
event.rs1use bytes::Bytes;
2use hyper::StatusCode;
3use serde::Deserialize;
4
5use crate::{client::error::ErrorCode, request::Requestable, ClientError};
6
7#[derive(Clone, Debug, PartialEq, Eq)]
9#[non_exhaustive]
10pub enum Event {
11 RenderAdded(RenderAdded),
12 RenderProgress(RenderProgress),
13 RenderFailed(RenderFailed),
14 RenderDone(RenderDone),
15 CustomSkinProcessUpdate(CustomSkinProcessUpdate),
16}
17
18#[derive(Copy, Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
22pub struct RenderAdded {
23 #[serde(rename = "renderID")]
25 pub render_id: u32,
26}
27
28impl Requestable for RenderAdded {
29 fn response_error(status: StatusCode, bytes: Bytes) -> ClientError {
30 ClientError::response_error(bytes, status.as_u16())
31 }
32}
33
34#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
36pub struct RenderDone {
37 #[serde(rename = "renderID")]
39 pub render_id: u32,
40 #[serde(rename = "videoUrl")]
42 pub video_url: Box<str>,
43}
44
45#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
47#[serde(rename_all = "camelCase")]
48pub struct RenderFailed {
49 #[serde(rename = "renderID")]
51 pub render_id: u32,
52 pub error_code: Option<ErrorCode>,
54 pub error_message: Box<str>,
56}
57
58#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
60pub struct RenderProgress {
61 pub description: Box<str>,
63 pub progress: Box<str>,
65 #[serde(rename = "renderID")]
67 pub render_id: u32,
68 pub renderer: Box<str>,
70 pub username: Box<str>,
72}
73
74#[derive(Copy, Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
76pub struct CustomSkinProcessUpdate {
77 #[serde(rename = "skinId")]
79 skin_id: u32,
80}