talk_api_internal/
agent.rs

1#[derive(Debug, Clone, Copy)]
2pub enum TalkApiAgent<'a> {
3    /// Android agent with os version
4    Android(&'a str),
5
6    /// Win32 agent with os version
7    Win32(&'a str),
8
9    /// Custom agent
10    Custom { agent: &'a str, user_agent: &'a str },
11}
12
13impl<'a> TalkApiAgent<'a> {
14    pub fn agent(&self) -> &str {
15        match self {
16            TalkApiAgent::Android(_) => "android",
17            TalkApiAgent::Win32(_) => "win32",
18            TalkApiAgent::Custom {
19                agent,
20                user_agent: _,
21            } => agent,
22        }
23    }
24
25    pub fn get_user_agent(&self, version: &str, language: &str) -> String {
26        match self {
27            TalkApiAgent::Android(os_version) => {
28                format!("KT/{} An/{} {}", version, os_version, language)
29            }
30            TalkApiAgent::Win32(os_version) => {
31                format!("KT/{} Wd/{} {}", version, os_version, language)
32            }
33            TalkApiAgent::Custom {
34                agent: _,
35                user_agent,
36            } => user_agent.to_string(),
37        }
38    }
39}