use std::sync::Arc;
use reqwest::Client;
use tokio::sync::RwLock;
use reqwest::Client as ReqwestClient;
use crate::node::client::Node;
pub struct NodeManagerOptions<'a> {
pub name: &'a str,
pub host: &'a str,
pub port: u32,
pub auth: &'a str,
pub id: u64,
pub request: ReqwestClient,
pub user_agent: &'a str,
pub reconnect_tries: u16,
}
pub struct RestOptions<'a> {
pub request: Client,
pub url: String,
pub auth: &'a str,
pub user_agent: &'a str,
pub session_id: Arc<RwLock<Option<String>>>,
}
pub struct PlayerOptions {
pub node: Node,
pub connection: ConnectionOptions,
pub guild_id: u64,
}
pub struct ConnectionOptions {
pub channel_id: Option<u64>,
pub endpoint: String,
pub guild_id: u64,
pub session_id: String,
pub token: String,
pub user_id: u64,
}
pub struct NodeOptions {
pub name: String,
pub host: String,
pub port: u32,
pub auth: String,
}
pub struct Options {
pub user_agent: Option<String>,
pub reconnect_tries: Option<u16>,
pub request: Option<Client>,
}