Skip to main content

inferlab_protocol/
lib.rs

1mod wire;
2
3use schemars::generate::SchemaSettings;
4
5pub use wire::{
6    AdapterError, AdapterErrorCode, AdapterProtocol, AdapterRequest, AdapterResponse,
7    AdapterResult, AllocationLaunch, BenchCaseInput, BenchClientRequest, BenchClientResult,
8    BenchDefinitionInput, BenchLoadInput, BuiltinRouterKind, CaptureControlRequirement,
9    CaptureTargetRequirement, ClientEndpointInput, ClientStatus, EndpointAssignment,
10    EndpointProtocol, EndpointRequirement, EvalClientRequest, EvalClientResult,
11    EvalDefinitionInput, HttpActionSpec, HttpMethod, HttpTargetRegistryReadiness,
12    IntegrationIdentity, KvTransferMechanism, LaunchFileDeclaration, MeasurementModelInput,
13    Parallelism, ParallelismAttention, ParallelismExperts, ParallelismOuter, PlanServeInput,
14    PlanServeResult, ProcessSpec, ProtocolVersion, RawArtifact, ReadinessProbe,
15    RenderInputDeclaration, RenderServeInput, RenderServeResult, RenderedServeProcess,
16    RoutingResult, ServeModelInput, ServeProcessAllocation, ServeReplicaRequirement,
17    ServeRoleInput, ServeRoleKind, ServeRoleLink, ServeRoleResult, ServeTopology, SettingValue,
18    SuppliedRenderInput, TargetEndpointScheme,
19};
20
21pub const PROTOCOL_SCHEMA_ID: &str = "https://inferlab.dev/schema/adapter-protocol/v5";
22
23#[must_use]
24pub fn protocol_schema() -> schemars::Schema {
25    let mut schema = SchemaSettings::draft2020_12()
26        .for_deserialize()
27        .into_generator()
28        .into_root_schema_for::<AdapterProtocol>();
29    schema
30        .ensure_object()
31        .insert("$id".to_owned(), PROTOCOL_SCHEMA_ID.into());
32    schema
33}