use serde::{Deserialize, Serialize};
use std::os::unix::io::OwnedFd;
use std::time::Duration;
#[derive(Debug, Serialize, Deserialize)]
pub enum Request {
SendListeningSockets,
GradualShutdown {
duration: Duration,
},
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Response {
SendListeningSockets,
GradualShutdown,
Error(String),
}
pub struct HotReloadListenerRequest {
pub return_chan: tokio::sync::oneshot::Sender<HotReloadListenerResponse>,
}
pub struct GradualShutdownRequest {
pub duration: Duration,
}
#[derive(Debug)]
pub enum HotReloadListenerResponse {
HotReloadResponse {
port: u16,
listener_socket_fd: OwnedFd,
},
NoListenerAvailable,
}