mirror of
https://github.com/euzu/tuliprox.git
synced 2026-09-30 21:12:12 +02:00
42 lines
1.5 KiB
Rust
42 lines
1.5 KiB
Rust
use shared::model::ReverseProxyConfigDto;
|
|
use crate::model::config::cache::CacheConfig;
|
|
use crate::model::{macros, GeoIpConfig, RateLimitConfig, StreamConfig};
|
|
|
|
#[derive(Debug, Clone)]
|
|
pub struct ReverseProxyConfig {
|
|
pub resource_rewrite_disabled: bool,
|
|
pub disable_referer_header: bool,
|
|
pub stream: Option<StreamConfig>,
|
|
pub cache: Option<CacheConfig>,
|
|
pub rate_limit: Option<RateLimitConfig>,
|
|
pub geoip: Option<GeoIpConfig>,
|
|
}
|
|
|
|
macros::from_impl!(ReverseProxyConfig);
|
|
|
|
impl From<&ReverseProxyConfigDto> for ReverseProxyConfig {
|
|
fn from(dto: &ReverseProxyConfigDto) -> Self {
|
|
Self {
|
|
resource_rewrite_disabled: dto.resource_rewrite_disabled,
|
|
disable_referer_header: dto.disable_referer_header,
|
|
stream: dto.stream.as_ref().map(Into::into),
|
|
cache: dto.cache.as_ref().map(Into::into),
|
|
rate_limit: dto.rate_limit.as_ref().map(Into::into),
|
|
geoip: dto.geoip.as_ref().map(Into::into),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<&ReverseProxyConfig> for ReverseProxyConfigDto {
|
|
fn from(instance: &ReverseProxyConfig) -> Self {
|
|
Self {
|
|
resource_rewrite_disabled: instance.resource_rewrite_disabled,
|
|
disable_referer_header: instance.disable_referer_header,
|
|
stream: instance.stream.as_ref().map(Into::into),
|
|
cache: instance.cache.as_ref().map(Into::into),
|
|
rate_limit: instance.rate_limit.as_ref().map(Into::into),
|
|
geoip: instance.geoip.as_ref().map(Into::into),
|
|
}
|
|
}
|
|
}
|