presolve_compiler/
capability_projection.rs1use crate::SemanticCapabilityRegistry;
3use serde::Serialize;
4pub const CAPABILITY_PROJECTION_SCHEMA_VERSION: u32 = 1;
5#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
6pub struct CapabilityProjectionV1 {
7 pub schema_version: u32,
8 pub admitted: usize,
9 pub deferred: usize,
10}
11#[must_use]
12pub fn build_capability_projection_v1(
13 registry: &SemanticCapabilityRegistry,
14) -> CapabilityProjectionV1 {
15 CapabilityProjectionV1 {
16 schema_version: CAPABILITY_PROJECTION_SCHEMA_VERSION,
17 admitted: registry
18 .capabilities
19 .iter()
20 .filter(|c| matches!(c.status, crate::SemanticCapabilityStatus::Admitted))
21 .count(),
22 deferred: registry
23 .capabilities
24 .iter()
25 .filter(|c| matches!(c.status, crate::SemanticCapabilityStatus::Deferred))
26 .count(),
27 }
28}