#[derive(Clone, PartialEq, Eq, Default)]
pub struct AccessToken(String);
impl std::fmt::Debug for AccessToken {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("AccessToken")
.field("token", &"****")
.finish()
}
}
impl AccessToken {
pub fn new<T: ToString>(token: T) -> Self {
Self(token.to_string())
}
}
impl From<String> for AccessToken {
fn from(s: String) -> Self {
Self(s)
}
}
impl From<AccessToken> for String {
fn from(t: AccessToken) -> Self {
t.0
}
}
#[derive(Clone, PartialEq, Debug)]
pub struct ConnectRequest {
pub request_id: super::RequestId,
pub protocol_version: String,
pub node_id: String,
pub ping_interval: chrono::Duration, pub ping_timeout: chrono::Duration, pub project_uuid: Option<String>,
pub access_token: Option<AccessToken>,
}
impl Default for ConnectRequest {
fn default() -> Self {
Self {
request_id: 0.into(),
protocol_version: crate::ISCP_VERSION.to_string(),
node_id: "".to_string(),
ping_interval: chrono::Duration::seconds(10),
ping_timeout: chrono::Duration::seconds(1),
project_uuid: None,
access_token: None,
}
}
}
#[derive(Clone, PartialEq, Default, Debug)]
pub struct ConnectResponse {
pub request_id: super::RequestId,
pub protocol_version: String,
pub result_code: super::ResultCode,
pub result_string: String,
}
#[derive(Clone, PartialEq, Default, Debug)]
pub struct Disconnect {
pub result_code: super::ResultCode,
pub result_string: String,
}