pub const fn resolve_routing_path(
capabilities: &ProxyCapabilities,
preference: TransportPreference,
) -> RoutingPathExpand description
Resolve the RoutingPath for a request given proxy capabilities and the
caller’s transport preference.
§Decision logic
| Preference | supports_http3_tunnel | Result |
|---|---|---|
PreferH3 | true | H3OverUdp |
PreferH3 | false | H1H2OverTcp |
ForceTcp | any | H1H2OverTcp |
PersistentTcp | any | PersistentTcp |
§Example
use stygian_proxy::routing::{resolve_routing_path, TransportPreference};
use stygian_proxy::types::{ProxyCapabilities, RoutingPath};
let caps = ProxyCapabilities { supports_http3_tunnel: true, ..Default::default() };
assert_eq!(
resolve_routing_path(&caps, TransportPreference::PreferH3),
RoutingPath::H3OverUdp,
);
assert_eq!(
resolve_routing_path(&caps, TransportPreference::ForceTcp),
RoutingPath::H1H2OverTcp,
);
let fallback = ProxyCapabilities::default();
assert_eq!(
resolve_routing_path(&fallback, TransportPreference::PreferH3),
RoutingPath::H1H2OverTcp,
);