rosu_render/model/
user_preset.rs1use std::collections::HashMap;
2
3use hyper::{body::Bytes, StatusCode};
4use serde::Deserialize;
5use serde_json::Value;
6use time::OffsetDateTime;
7
8use crate::{request::Requestable, util::datetime::deserialize_datetime, ClientError};
9
10#[derive(Clone, Debug, Deserialize, PartialEq, Eq)]
12pub struct UserPreset {
13 #[serde(rename = "presetName")]
15 pub name: String,
16 #[serde(rename = "lastSavedOn", deserialize_with = "deserialize_datetime")]
18 pub last_saved_on: OffsetDateTime,
19 #[serde(flatten)]
21 pub settings: HashMap<String, Value>,
22}
23
24impl Requestable for UserPreset {
25 fn response_error(status: StatusCode, bytes: Bytes) -> ClientError {
26 if status == StatusCode::NOT_FOUND {
27 ClientError::PresetNotFound
28 } else {
29 ClientError::response_error(bytes, status.as_u16())
30 }
31 }
32}