cc_lb_plugin_wire/v2/
mod.rs1use alloc::boxed::Box;
7
8use rkyv::{Archive, Deserialize, Serialize, with::InlineAsBox};
9
10pub use crate::v1::{
11 ArchivedCachePricingSummary, ArchivedClaim, ArchivedFilterResponse, ArchivedHeader,
12 ArchivedPerCandidateReason, ArchivedPrincipal, ArchivedQueryRef, ArchivedUpstreamCandidate,
13 CachePricingSummary, CachePricingSummaryRef, Claim, ClaimRef, FilterResponse, Header,
14 HeaderRef, PerCandidateReason, Principal, PrincipalRef, QueryRef, UpstreamCandidate,
15 UpstreamCandidateRef,
16};
17
18#[derive(Archive, Serialize, Deserialize, Clone, Debug)]
20#[rkyv(derive(Debug))]
21pub struct FilterRequest {
22 pub request_id: Box<str>,
23 pub thread_id: Option<Box<str>>,
24 pub service_tier: Option<Box<str>>,
25 pub canonical_model_id: Box<str>,
26 pub cache_pricing: CachePricingSummary,
27 pub method: Box<str>,
28 pub path: Box<str>,
29 pub query: Option<Box<str>>,
30 pub headers: Box<[Header]>,
31 pub body: Box<[u8]>,
32 pub principal: Principal,
33 pub candidates: Box<[UpstreamCandidate]>,
34}
35
36#[derive(Archive, Serialize)]
38pub struct FilterRequestRef<'a> {
39 #[rkyv(with = InlineAsBox)]
40 pub request_id: &'a str,
41 pub thread_id: Option<QueryRef<'a>>,
42 pub service_tier: Option<QueryRef<'a>>,
43 #[rkyv(with = InlineAsBox)]
44 pub canonical_model_id: &'a str,
45 pub cache_pricing: CachePricingSummaryRef<'a>,
46 #[rkyv(with = InlineAsBox)]
47 pub method: &'a str,
48 #[rkyv(with = InlineAsBox)]
49 pub path: &'a str,
50 pub query: Option<QueryRef<'a>>,
51 #[rkyv(with = InlineAsBox)]
52 pub headers: &'a [HeaderRef<'a>],
53 #[rkyv(with = InlineAsBox)]
54 pub body: &'a [u8],
55 pub principal: PrincipalRef<'a>,
56 #[rkyv(with = InlineAsBox)]
57 pub candidates: &'a [UpstreamCandidateRef<'a>],
58}
59
60include!(concat!(env!("OUT_DIR"), "/wire_schema_v2_impls.rs"));