Skip to main content

Crate switchback_protocols

Crate switchback_protocols 

Source
Expand description

Built-in protocol implementations and registry for switchback attachments.

Transport semantics are orthogonal to contract family. Parsers attach ProtocolAttachment envelopes on contract and entity nodes; this crate provides HttpProtocol, GrpcProtocol, and ProtocolRegistry to encode and decode built-in payload schemas.

§Entity attachment matrix

IR nodehttp payload armgrpc payload arm
ContractHttpContractMetaGrpcContractMeta
OperationHttpOperationMetaGrpcOperationMeta
Response ref/bodyHttpResponseMeta / HttpErrorMetaGrpcStatusMeta / GrpcErrorMeta
Parameter ref/bodyHttpParameterMetaGrpcMetadataMeta

Decode: read protocol_id, deserialize payload as HttpPayload or GrpcPayload, inspect the oneof kind. See ADR 0011 and ADR 0012.

Structs§

AmqpProtocol
Built-in AMQP protocol ("amqp").
GrpcProtocol
Built-in gRPC protocol ("grpc").
HttpProtocol
Built-in HTTP protocol ("http").
KafkaProtocol
Built-in Kafka protocol ("kafka").
MqttProtocol
Built-in MQTT protocol ("mqtt").
ProtocolRegistry
Registry of built-in protocol decoders.

Enums§

AmqpPayloadKind
Decoded AMQP payload oneof arm.
DecodedAttachment
Result of decoding a ProtocolAttachment.
GrpcPayloadKind
Decoded gRPC payload oneof arm.
HttpPayloadKind
Decoded HTTP payload oneof arm.
KafkaPayloadKind
Decoded Kafka payload oneof arm.
MqttPayloadKind
Decoded MQTT payload oneof arm.

Traits§

ErrorProtocol
Error / fault documentation aspects.
FieldCarrierProtocol
Named fields carried outside the message body.
OperationProtocol
Operation documentation aspects.
Protocol
Stable protocol slug plus metadata.
ProtocolWire
Encode/decode the typed payload inside ProtocolAttachment.
ResponseProtocol
Response outcome mapping.

Functions§

grpc_status_name_severity
Classify a gRPC status name (OK, INVALID_ARGUMENT, …).
grpc_status_severity
Classify a gRPC status code (numeric google.rpc.Code).
http_status_code_severity
Classify a numeric HTTP status code.
http_status_severity
Classify an OpenAPI / HTTP status key (200, 4XX, default, …).