#[cfg(feature = "usdt-probes")]
#[derive(Debug, Clone, serde::Serialize)]
pub(crate) struct RequestInfo {
pub id: String,
pub local_addr: std::net::SocketAddr,
pub remote_addr: std::net::SocketAddr,
pub method: String,
pub path: String,
pub query: Option<String>,
}
#[cfg(feature = "usdt-probes")]
#[derive(Debug, Clone, serde::Serialize)]
pub(crate) struct ResponseInfo {
pub id: String,
pub local_addr: std::net::SocketAddr,
pub remote_addr: std::net::SocketAddr,
pub status_code: u16,
pub message: String,
}
#[cfg(feature = "usdt-probes")]
#[usdt::provider(provider = "dropshot")]
mod probes {
use crate::dtrace::{RequestInfo, ResponseInfo};
fn request__start(_: &RequestInfo) {}
fn request__done(_: &ResponseInfo) {}
}
#[derive(Debug, Clone, PartialEq)]
pub enum ProbeRegistration {
Disabled,
Succeeded,
Failed(String),
}