origin_sdk/protocol/
overlay.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct IgoEvent {
5 #[serde(rename = "@State")]
6 pub state: IgoState,
7}
8
9#[derive(Debug, Serialize, Deserialize)]
10pub enum IgoState {
11 #[serde(rename = "DOWN")]
12 Down,
13 #[serde(rename = "UP")]
14 Up,
15}
16
17#[derive(Debug, Serialize, Deserialize)]
18pub struct IgoUnavailable {
19 #[serde(rename = "@Reason")]
20 pub reason: i32,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub enum IgoWindow {
25 #[serde(rename = "LOGIN")]
26 Login = 1,
27 #[serde(rename = "PROFILE")]
28 Profile,
29 #[serde(rename = "RECENT")]
30 Recent,
31 #[serde(rename = "FEEDBACK")]
32 Feedback,
33 #[serde(rename = "FRIENDS")]
34 Friends,
35 #[serde(rename = "FRIEND_REQUEST")]
36 FriendRequest,
37 #[serde(rename = "CHAT")]
38 Chat,
39 #[serde(rename = "COMPOSE_CHAT")]
40 ComposeChat,
41 #[serde(rename = "INVITE")]
42 Invite,
43 #[serde(rename = "ACHIEVEMENTS")]
44 Achievements,
45 #[serde(rename = "STORE")]
46 Store,
47 #[serde(rename = "CODE_REDEMPTION")]
48 CodeRedemption,
49 #[serde(rename = "CHECKOUT")]
50 Checkout,
51 #[serde(rename = "BLOCKED")]
52 Blocked,
53 #[serde(rename = "BROWSER")]
54 Browser,
55 #[serde(rename = "FIND_FRIENDS")]
56 FindFriends,
57 #[serde(rename = "CHANGE_AVATAR")]
58 ChangeAvatar,
59 #[serde(rename = "GAMEDETAILS")]
60 Gamedetails,
61 #[serde(rename = "BROADCAST")]
62 Broadcast,
63 #[serde(rename = "UPSELL")]
64 Upsell,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct MinimizeRequest;
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct ShowIgo {
72 #[serde(rename = "@bShow")]
73 pub b_show: bool,
74}
75
76#[derive(Debug, Serialize, Deserialize)]
77pub struct ShowIgoWindow {
78 #[serde(rename = "@UserId")]
79 pub user_id: u64,
80 #[serde(rename = "@WindowId")]
81 pub window_id: IgoWindow,
82 #[serde(rename = "@Show", default = "ShowIgoWindow::default_show")]
83 pub show: bool,
84 #[serde(rename = "@Flags")]
85 pub flags: i32,
86 #[serde(rename = "@ContentId")]
87 pub content_id: String,
88 #[serde(rename = "TargetId", default)]
89 pub target_id: Vec<u64>,
90 #[serde(rename = "String")]
91 pub string: String,
92 #[serde(rename = "Args", default)]
93 pub args: Vec<String>,
94 #[serde(rename = "MasterTitleIds", default)]
95 pub master_title_ids: Vec<String>,
96 #[serde(rename = "Categories", default)]
97 pub categories: Vec<String>,
98 #[serde(rename = "Offers", default)]
99 pub offers: Vec<String>,
100}
101
102impl ShowIgoWindow {
103 #[must_use]
104 pub fn default_show() -> bool {
105 true
106 }
107}