rust-rpxy/src/msg_handler/utils_response.rs
Jun Kurihara 45895ca7bc
reformat
2022-07-22 22:28:26 +09:00

41 lines
1.4 KiB
Rust

use crate::{log::*, utils::*};
use hyper::Response;
use std::fmt::Display;
////////////////////////////////////////////////////
// Functions of utils for request messages
pub trait ResLog {
fn log<T1: Display, T2: Display + ToCanonical>(self, server_name: &T1, client_addr: &T2, extra: Option<&str>);
fn log_debug<T1: Display, T2: Display + ToCanonical>(self, server_name: &T1, client_addr: &T2, extra: Option<&str>);
fn build_message<T1: Display, T2: Display + ToCanonical>(
self,
server_name: &T1,
client_addr: &T2,
extra: Option<&str>,
) -> String;
}
impl<B> ResLog for &Response<B> {
fn log<T1: Display, T2: Display + ToCanonical>(self, server_name: &T1, client_addr: &T2, extra: Option<&str>) {
info!("{}", &self.build_message(server_name, client_addr, extra));
}
fn log_debug<T1: Display, T2: Display + ToCanonical>(self, server_name: &T1, client_addr: &T2, extra: Option<&str>) {
debug!("{}", &self.build_message(server_name, client_addr, extra));
}
fn build_message<T1: Display, T2: Display + ToCanonical>(
self,
server_name: &T1,
client_addr: &T2,
extra: Option<&str>,
) -> String {
let canonical_client_addr = client_addr.to_canonical();
format!(
"{} <- {} -- {} {:?} {}",
canonical_client_addr,
server_name,
self.status(),
self.version(),
// self.headers(),
extra.map_or_else(|| "", |v| v)
)
}
}