Skip to main content

wire_contract_for_service

Function wire_contract_for_service 

Source
pub fn wire_contract_for_service(
    unit: &str,
    text: &str,
    service_name: &str,
    handler: &Handler,
    info: &ContextBoundaryInfo,
    expr_types: &[(Span, TyId)],
    tys: &Types,
    context_count: usize,
) -> Option<WireContractModel>
Expand description

Build the wire contract for one already-located handler. The pure half of wire_contract_at — the part that never touches the offset/re-parse machinery — split out the same way sequence_model_at delegates to sequence::sequence_model.

service_name must name an entry in info.services (the owning unit’s retained service table) — the handler is spliced into a clone of that declaration (a synthetic single-handler service) so bynk_check::wire::collect_boundary_types narrows its walk to exactly this handler’s params/return, not the whole service’s. None if the service is not (yet) in the retained table — a live-buffer/committed-round mismatch (the same class of staleness sequence_model_at accepts for sequence_info).