use crate::define::{SSScheme, SchemeKey};
use derive_builder::Builder;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Builder)]
#[builder(setter(into))]
pub struct SourceRelay {
source_id: String,
relay_id: String,
#[builder(default)]
meta: String,
scheme: SSScheme,
relay_ip: String,
#[builder(default)]
muxer_config: String,
}
impl SourceRelay {
pub fn source_id(&self) -> &str {
&self.source_id
}
pub fn scheme_key(&self) -> SchemeKey {
SchemeKey::new(self.scheme, &self.muxer_config)
}
pub fn relay_id(&self) -> &str {
&self.relay_id
}
pub fn meta(&self) -> &str {
&self.meta
}
pub fn scheme(&self) -> SSScheme {
self.scheme
}
pub fn relay_ip(&self) -> &str {
&self.relay_ip
}
pub fn muxer_config(&self) -> &str {
&self.muxer_config
}
}