init_data_rust/
models.rs

1use serde::Deserialize;
2
3/// Contains launch parameters data
4#[derive(Debug, PartialEq, Deserialize)]
5pub struct InitData {
6    pub auth_date: u64,
7    pub can_send_after: Option<u64>,
8    pub chat: Option<Chat>,
9    pub chat_type: Option<String>,
10    pub chat_instance: Option<i64>,
11    pub hash: String,
12    pub query_id: Option<String>,
13    pub receiver: Option<User>,
14    pub start_param: Option<String>,
15    pub user: Option<User>,
16}
17
18/// Describes user information
19#[derive(Debug, PartialEq, Deserialize)]
20pub struct User {
21    pub added_to_attachment_menu: Option<bool>,
22    pub allows_write_to_pm: Option<bool>,
23    pub is_premium: Option<bool>,
24    pub first_name: String,
25    pub id: i64,
26    pub is_bot: Option<bool>,
27    pub last_name: Option<String>,
28    pub language_code: Option<String>,
29    pub photo_url: Option<String>,
30    pub username: Option<String>,
31}
32
33/// Describes the chat information
34#[derive(Debug, PartialEq, Deserialize)]
35pub struct Chat {
36    pub id: i64,
37    pub r#type: String,
38    pub title: String,
39    pub photo_url: Option<String>,
40    pub username: Option<String>,
41}