mod activity;
mod connector;
mod fallback;
mod forward;
mod headers;
mod session;
mod state;
mod upgrade;
mod upload;
mod uri;
pub use activity::ActivityClass;
pub use connector::VsockConnector;
pub(crate) use fallback::invalidate_on_guest_error;
pub use fallback::proxy_fallback;
pub use forward::{proxy_to_guest_pooled, proxy_to_guest_stream_pooled};
pub use session::GuestHttpClient;
pub use state::{ActivityHook, ActivityLease, ProxyState};
pub use upgrade::proxy_with_upgrade;
pub use upload::proxy_streaming_upload;
use crate::error::Result;
pub use arcbox_transport::vsock::{VsockShutdown, VsockStream};
use hyper_util::rt::TokioIo;
use std::future::Future;
use std::pin::Pin;
use std::time::Duration;
const HANDSHAKE_TIMEOUT: Duration = Duration::from_secs(5);
pub trait GuestConnector: Send + Sync + 'static {
fn connect(&self) -> Pin<Box<dyn Future<Output = Result<TokioIo<VsockStream>>> + Send + '_>>;
}