Skip to main content

capable_healthy_candidates

Function capable_healthy_candidates 

Source
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);