pub struct CapabilityRequirement {
pub require_https_connect: bool,
pub require_socks5_udp: bool,
pub require_http3_tunnel: bool,
pub require_geo_country: Option<String>,
pub require_cdn_edge: bool,
pub require_tls_profile: Option<String>,
pub require_ip_class: Option<IpClassRequirement>,
pub target_vendor: Option<VendorId>,
pub require_asn: Option<u32>,
pub require_city: Option<String>,
pub require_postal_code: Option<String>,
}Expand description
Required capability set used as a filter when acquiring a proxy.
All fields default to false/None — an empty requirement matches any proxy.
§Example
use stygian_proxy::types::CapabilityRequirement;
let req = CapabilityRequirement::default();
// empty requirement — any proxy qualifies
assert!(!req.require_https_connect);
assert!(req.require_ip_class.is_none());
assert!(req.target_vendor.is_none());Fields§
§require_https_connect: boolRequire supports_https_connect.
require_socks5_udp: boolRequire supports_socks5_udp.
require_http3_tunnel: boolRequire supports_http3_tunnel.
require_geo_country: Option<String>Require a specific egress country (ISO-3166-1 alpha-2).
require_cdn_edge: boolRequire a CDN-edge proxy (is_cdn_edge must be true).
require_tls_profile: Option<String>Require a specific TLS fingerprint profile.
When Some, only proxies whose ProxyCapabilities::tls_profile
matches this value exactly are eligible. Examples: "chrome-131",
"firefox-120", "curl".
require_ip_class: Option<IpClassRequirement>Minimum IP trust class required.
When Some, the proxy’s IpClass must outrank
require_ip_class.minimum. A Mobile proxy
satisfies an Isp requirement because
Mobile.rank() > Isp.rank().
target_vendor: Option<VendorId>When Some, the proxy’s TargetVendorCompatibility must carry
a tier other than TrustTier::Blocked for this vendor (or be
absent, in which case the requirement is treated as blocked).
Used to gate free-list pools away from premium vendors: a proxy
with target_compatibility.get(DataDome) == Some(Blocked) does
not satisfy target_vendor = Some(DataDome).
require_asn: Option<u32>When Some, the proxy’s ProxyCapabilities::asn must equal
this value exactly. None on the proxy side never satisfies a
Some requirement (no enrichment, no match). See
crate::types::well_known for the canonical CDN ASN constants.
require_city: Option<String>When Some, the proxy’s ProxyCapabilities::city must equal
this value exactly. None on the proxy side never satisfies a
Some requirement.
require_postal_code: Option<String>When Some, the proxy’s ProxyCapabilities::postal_code must
equal this value exactly. None on the proxy side never
satisfies a Some requirement.
Trait Implementations§
Source§impl Clone for CapabilityRequirement
impl Clone for CapabilityRequirement
Source§fn clone(&self) -> CapabilityRequirement
fn clone(&self) -> CapabilityRequirement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CapabilityRequirement
impl Debug for CapabilityRequirement
Source§impl Default for CapabilityRequirement
impl Default for CapabilityRequirement
Source§fn default() -> CapabilityRequirement
fn default() -> CapabilityRequirement
Source§impl<'de> Deserialize<'de> for CapabilityRequirement
impl<'de> Deserialize<'de> for CapabilityRequirement
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CapabilityRequirement
Source§impl PartialEq for CapabilityRequirement
impl PartialEq for CapabilityRequirement
Source§impl Serialize for CapabilityRequirement
impl Serialize for CapabilityRequirement
impl StructuralPartialEq for CapabilityRequirement
Auto Trait Implementations§
impl Freeze for CapabilityRequirement
impl RefUnwindSafe for CapabilityRequirement
impl Send for CapabilityRequirement
impl Sync for CapabilityRequirement
impl Unpin for CapabilityRequirement
impl UnsafeUnpin for CapabilityRequirement
impl UnwindSafe for CapabilityRequirement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.