1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
// TODO: with optional params

#[derive(Debug)]
pub enum Method {
    GetMe,
    LogOut,
    Close,
    SendMessage,
    ForwardMessage,
    CopyMessage,
    // SendPhoto,
    // SendAudio,
    // SendDocument,
    // SendVideo,
    // SendAnimation,
    // SendVoice,
    // SendVideoNote,
    // SendMediaGroup,
    // SendLocation,
    // SendVenue,
    // SendContract,
    // SendPoll,
    // SendDice,
    // SendChatAction,
    // GetUserProfilePhotos,
    // GetFile,
    // BanChatMember,
    // UnbanChatMember,
    // RestrictChatMember,
    // PromoteChatMember,
    // SetChatAdministratorCustomTitle,
    // BanChatSenderChat,
    // UnbanChatSenderChat,
    // SetChatPermissions,
    // ExportChatInviteLink,
    // CreateChatInviteLink,
    // EditChatInviteLink,
    // RevokeChatInviteLink,
    // ApproveChatJoinRequest,
    // DeclineChatJoinRequest,
    // SetChatPhoto,
    // DeleteChatPhoto,
    // SetChatTitle,
    // SetChatDescription,
    // PinChatMessage,
    // UnpinChatMessage,
    // UnpinAllChatMessages,
    // LeaveChat,
    // GetChat,
    // GetChatAdministrators,
    // GetChatMemberCount,
    // GetChatMember,
    // SetChatStickerSet,
    // DeleteChatStickerSet,
    // GetForumTopicIconStickers,
    // CreateForumTopic,
    // EditForumTopic,
    // CloseForumTopic,
    // ReopenForumTopic,
    // DeleteForumTopic,
    // UnpinAllForumTopicMessages,
    // EditGeneralForumTopic,
    // CloseGeneralForumTopic,
    // ReopenGeneralForumTopic,
    // HideGeneralForumTopic,
    // UnhideGeneralForumTopic,
    // AnswerCallbackQuery,
    // SetMyCommands,
    // DeleteMyCommands,
    // GetMyCommands,
    // SetMyDescription,
    // GetMyDescription,
    // SetMyShortDescription,
    // GetMyShortDescription,
    // SetChatMenuButton,
    // GetChatMenuButton,
    // SetMyDefaultAdministratorRights,
    // GetMyDefaultAdministratorRights,
    EditMessageText,
    EditMessageCaption,
    EditMessageMedia,
    EditMessageLiveLocation,
    StopMessageLiveLocation,
    EditMessageReplyMarkup,
    StopPoll,
    DeleteMessage,
}

impl ToString for Method {
    fn to_string(&self) -> String {
        match self {
            Method::GetMe => "getMe".to_string(),
            Method::LogOut => "logOut".to_string(),
            Method::Close => "close".to_string(),
            Method::SendMessage => "sendMessage".to_string(),
            Method::ForwardMessage => "forwardMessage".to_string(),
            Method::CopyMessage => "copyMessage".to_string(),
            // Method::SendPhoto => "sendPhoto".to_string(),
            // Method::SendAudio => "sendAudio".to_string(),
            // Method::SendDocument => "sendDocument".to_string(),
            // Method::SendVideo => todo!(),
            // Method::SendAnimation => todo!(),
            // Method::SendVoice => todo!(),
            // Method::SendVideoNote => todo!(),
            // Method::SendMediaGroup => todo!(),
            // Method::SendLocation => todo!(),
            // Method::SendVenue => todo!(),
            // Method::SendContract => todo!(),
            // Method::SendPoll => todo!(),
            // Method::SendDice => todo!(),
            // Method::SendChatAction => todo!(),
            // Method::GetUserProfilePhotos => todo!(),
            // Method::GetFile => todo!(),
            // Method::BanChatMember => todo!(),
            // Method::UnbanChatMember => todo!(),
            // Method::RestrictChatMember => todo!(),
            // Method::PromoteChatMember => todo!(),
            // Method::SetChatAdministratorCustomTitle => todo!(),
            // Method::BanChatSenderChat => todo!(),
            // Method::UnbanChatSenderChat => todo!(),
            // Method::SetChatPermissions => todo!(),
            // Method::ExportChatInviteLink => todo!(),
            // Method::CreateChatInviteLink => todo!(),
            // Method::EditChatInviteLink => todo!(),
            // Method::RevokeChatInviteLink => todo!(),
            // Method::ApproveChatJoinRequest => todo!(),
            // Method::DeclineChatJoinRequest => todo!(),
            // Method::SetChatPhoto => todo!(),
            // Method::DeleteChatPhoto => todo!(),
            // Method::SetChatTitle => todo!(),
            // Method::SetChatDescription => todo!(),
            // Method::PinChatMessage => todo!(),
            // Method::UnpinChatMessage => todo!(),
            // Method::UnpinAllChatMessages => todo!(),
            // Method::LeaveChat => todo!(),
            // Method::GetChat => todo!(),
            // Method::GetChatAdministrators => todo!(),
            // Method::GetChatMemberCount => todo!(),
            // Method::GetChatMember => todo!(),
            // Method::SetChatStickerSet => todo!(),
            // Method::DeleteChatStickerSet => todo!(),
            // Method::GetForumTopicIconStickers => todo!(),
            // Method::CreateForumTopic => todo!(),
            // Method::EditForumTopic => todo!(),
            // Method::CloseForumTopic => todo!(),
            // Method::ReopenForumTopic => todo!(),
            // Method::DeleteForumTopic => todo!(),
            // Method::UnpinAllForumTopicMessages => todo!(),
            // Method::EditGeneralForumTopic => todo!(),
            // Method::CloseGeneralForumTopic => todo!(),
            // Method::ReopenGeneralForumTopic => todo!(),
            // Method::HideGeneralForumTopic => todo!(),
            // Method::UnhideGeneralForumTopic => todo!(),
            // Method::AnswerCallbackQuery => todo!(),
            // Method::SetMyCommands => todo!(),
            // Method::DeleteMyCommands => todo!(),
            // Method::GetMyCommands => todo!(),
            // Method::SetMyDescription => todo!(),
            // Method::GetMyDescription => todo!(),
            // Method::SetMyShortDescription => todo!(),
            // Method::GetMyShortDescription => todo!(),
            // Method::SetChatMenuButton => todo!(),
            // Method::GetChatMenuButton => todo!(),
            // Method::SetMyDefaultAdministratorRights => todo!(),
            // Method::GetMyDefaultAdministratorRights => todo!(),
            Method::EditMessageText => "editMessageText".to_string(),
            Method::EditMessageCaption => "editMessageCaption".to_string(),
            Method::EditMessageMedia => "editMessageMedia".to_string(),
            Method::EditMessageLiveLocation => "editMessageLiveLocation".to_string(),
            Method::StopMessageLiveLocation => "stopMessageLiveLocation".to_string(),
            Method::EditMessageReplyMarkup => "editMessageReplyMarkup".to_string(),
            Method::StopPoll => "stopPoll".to_string(),
            Method::DeleteMessage => "deleteMessage".to_string(),
        }
    }
}