Skip to main content

tandem_wire/
provider.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
6pub struct WireProviderCatalog {
7    pub all: Vec<WireProviderEntry>,
8    pub connected: Vec<String>,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
12pub struct WireProviderEntry {
13    pub id: String,
14    pub name: Option<String>,
15    pub models: HashMap<String, WireProviderModel>,
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub catalog_source: Option<String>,
18    #[serde(default, skip_serializing_if = "Option::is_none")]
19    pub catalog_status: Option<String>,
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub catalog_message: Option<String>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
25pub struct WireProviderModel {
26    pub name: Option<String>,
27    pub limit: Option<WireProviderModelLimit>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
31pub struct WireProviderModelLimit {
32    pub context: Option<u32>,
33}