pub fn capable_healthy_candidates<'a>(
all: &'a [ProxyCandidate],
req: &CapabilityRequirement,
) -> Vec<&'a ProxyCandidate>Expand description
Filter all to candidates that are healthy and satisfy req.
An empty CapabilityRequirement (all flags false, no geo filter)
behaves identically to healthy_candidates.
ยงExample
use std::sync::Arc;
use stygian_proxy::strategy::{ProxyCandidate, capable_healthy_candidates};
use stygian_proxy::types::{CapabilityRequirement, ProxyCapabilities, ProxyMetrics};
use uuid::Uuid;
let caps = ProxyCapabilities { supports_https_connect: true, ..Default::default() };
let candidate = ProxyCandidate {
id: Uuid::new_v4(),
weight: 1,
metrics: Arc::new(ProxyMetrics::default()),
healthy: true,
capabilities: caps,
};
let req = CapabilityRequirement { require_https_connect: true, ..Default::default() };
let candidates = [candidate];
let result = capable_healthy_candidates(&candidates, &req);
assert_eq!(result.len(), 1);