1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Built-in protocol implementations and registry for switchback attachments.
//!
//! Transport semantics are orthogonal to [contract family](https://github.com/canardleteer/switchback-rs/blob/main/docs/GLOSSARY.md#contract-family).
//! Parsers attach [`ProtocolAttachment`](switchback_traits::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 node | `http` payload arm | `grpc` payload arm |
//! | --- | --- | --- |
//! | Contract | `HttpContractMeta` | `GrpcContractMeta` |
//! | Operation | `HttpOperationMeta` | `GrpcOperationMeta` |
//! | Response ref/body | `HttpResponseMeta` / `HttpErrorMeta` | `GrpcStatusMeta` / `GrpcErrorMeta` |
//! | Parameter ref/body | `HttpParameterMeta` | `GrpcMetadataMeta` |
//!
//! Decode: read `protocol_id`, deserialize `payload` as `HttpPayload` or
//! `GrpcPayload`, inspect the oneof kind. See
//! [ADR 0011](https://github.com/canardleteer/switchback-rs/blob/main/docs/adr/0011-protocol-layer-and-contract-family-binding.md)
//! and [ADR 0012](https://github.com/canardleteer/switchback-rs/blob/main/docs/adr/0012-http-streaming-inference-and-grpc-metadata-from-protobuf-options.md).
pub use AmqpProtocol;
pub use GrpcProtocol;
pub use HttpProtocol;
pub use KafkaProtocol;
pub use MqttProtocol;
pub use ;
pub use ;
pub use ;