Skip to main content

WireSchema

Trait WireSchema 

Source
pub trait WireSchema {
    const FINGERPRINT: [u8; 32];
    const DESCRIPTOR: &'static str;
}
Expand description

Layout fingerprint published by each wire struct via the #[derive(WireSchema)] proc-macro (defined in cc-lb-pdk-wasmtime-macros). The macro walks the struct AST, serialises fields to a canonical descriptor string, then embeds BLAKE3(descriptor) as a 32-byte const.

Required Associated Constants§

Source

const FINGERPRINT: [u8; 32]

Source

const DESCRIPTOR: &'static str

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl WireSchema for Claim

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "Claim{key:Box<str>,value:Box<[u8]>}"

§

impl WireSchema for FilterRequest

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "FilterRequest{body:Box<[u8]>,candidates:Box<[UpstreamCandidate]>,headers:Box<[Header]>,method:Box<str>,path:Box<str>,principal:Principal,query:Option<Box<str>>,request_id:Box<str>,thread_id:Option<Box<str>>}"

§

impl WireSchema for FilterResponse

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "FilterResponse{results:Box<[PerCandidateReason]>}"

§

impl WireSchema for Header

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "Header{name:Box<str>,value:Box<[u8]>}"

§

impl WireSchema for ObserveEvent

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "ObserveEvent[RequestStarted{request_id:Box<str>,downstream_user_agent:Option<Box<str>>},AuthnComplete{principal_id:Box<str>,principal_kind:Box<str>},UpstreamChosen{upstream:Upstream},Chunk{batch_index:u64,event_count:u64,total_bytes:u64},RequestFinished{status:u16,input_tokens:Option<u64>,output_tokens:Option<u64>,cache_creation_input_tokens:Option<u64>,cache_read_input_tokens:Option<u64>,duration_ms:u64},Error{code:Box<str>,message:Box<str>,source:Box<str>}]"

§

impl WireSchema for PerCandidateReason

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "PerCandidateReason{decision:Box<str>,reason:Box<str>,upstream_id:Box<str>}"

§

impl WireSchema for Principal

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "Principal{claims:Box<[Claim]>,id:Box<str>,kind:Box<str>}"

§

impl WireSchema for ShapeRequest

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "ShapeRequest{body:Box<[u8]>,headers:Box<[Header]>,method:Box<str>,path:Box<str>,principal:Principal,query:Option<Box<str>>,request_id:Box<str>,upstream:Upstream}"

§

impl WireSchema for ShapeResponse

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "ShapeResponse{body:Box<[u8]>,headers:Box<[Header]>,method:Box<str>,url:Box<str>}"

§

impl WireSchema for Upstream

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "Upstream[AnthropicDirect{base_url:Option<Box<str>>}]"

§

impl WireSchema for UpstreamCandidate

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "UpstreamCandidate{kind:Box<str>,name:Box<str>,observed_at_unix_secs:u64,organization_type:Box<str>,plan_capacity_ratio:f64,predicted_cache_read_tokens:u32,rate_limit_tier:Box<str>,seat_tier:Box<str>,upstream_id:Box<str>}"

§

impl<'a> WireSchema for ClaimRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "ClaimRef{key:&str,value:&[u8]}"

§

impl<'a> WireSchema for FilterRequestRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "FilterRequestRef{body:&[u8],candidates:&[UpstreamCandidateRef],headers:&[HeaderRef],method:&str,path:&str,principal:PrincipalRef,query:Option<QueryRef>,request_id:&str,thread_id:Option<QueryRef>}"

§

impl<'a> WireSchema for HeaderRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "HeaderRef{name:&str,value:&[u8]}"

§

impl<'a> WireSchema for PrincipalRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "PrincipalRef{claims:&[ClaimRef],id:&str,kind:&str}"

§

impl<'a> WireSchema for QueryRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "QueryRef{value:&str}"

§

impl<'a> WireSchema for ShapeRequestRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "ShapeRequestRef{body:&[u8],headers:&[HeaderRef],method:&str,path:&str,principal:PrincipalRef,query:Option<QueryRef>,request_id:&str,upstream:UpstreamRef}"

§

impl<'a> WireSchema for UpstreamCandidateRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "UpstreamCandidateRef{kind:&str,name:&str,observed_at_unix_secs:u64,organization_type:&str,plan_capacity_ratio:f64,predicted_cache_read_tokens:u32,rate_limit_tier:&str,seat_tier:&str,upstream_id:&str}"

§

impl<'a> WireSchema for UpstreamRef<'a>

§

const FINGERPRINT: [u8; 32]

§

const DESCRIPTOR: &'static str = "UpstreamRef[AnthropicDirect{base_url:Option<QueryRef>}]"