soundcloud_rs/models/
client.rs

1use serde::{Deserialize, Serialize};
2use std::fmt;
3use tokio::sync::RwLock;
4
5use crate::models::config::RetryConfig;
6
7#[derive(Debug, Serialize, Deserialize)]
8#[serde(untagged)]
9pub enum Identifier {
10    Id(i64),
11    Urn(String),
12}
13
14impl fmt::Display for Identifier {
15    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16        match self {
17            Identifier::Id(id) => write!(f, "{id}"),
18            Identifier::Urn(urn) => write!(f, "{urn}"),
19        }
20    }
21}
22
23/// SoundCloud API client
24#[derive(Debug)]
25pub struct Client {
26    pub client_id: RwLock<String>,
27    pub retry_config: RetryConfig,
28}