#[cfg(not(feature = "websocket-tls"))]
mod no_tls;
#[cfg(not(feature = "websocket-tls"))]
pub(crate) use no_tls::{StreamConfiguration, TlsStream};
#[cfg(feature = "websocket-tls")]
mod rust_tls;
#[cfg(feature = "websocket-tls")]
pub(crate) use rust_tls::{StreamConfiguration, TlsStream};
use tokio::net::TcpStream;
use tokio_util::either::Either;
use crate::FoxgloveError;
pub(crate) type ServerStream<S> = Either<S, TlsStream<S>>;
pub(crate) trait Acceptor {
async fn accept(&self, stream: TcpStream) -> Result<ServerStream<TcpStream>, FoxgloveError>;
fn accepts_tls(&self) -> bool;
}
#[doc(hidden)]
pub struct TlsIdentity {
pub cert: Vec<u8>,
pub key: Vec<u8>,
}