|
13 | 13 | //! easy serialization and deserialization via [`bytes::Bytes`].
|
14 | 14 | //!
|
15 | 15 | //! ```rust
|
16 |
| -//! use bytes::{Bytes, BytesMut}; |
| 16 | +//! use bytes::BytesMut; |
| 17 | +//! use kafka_protocol::protocol::{encode_request_header_into_buffer, decode_request_header_from_buffer}; |
17 | 18 | //! use kafka_protocol::messages::RequestHeader;
|
18 | 19 | //! use kafka_protocol::protocol::{StrBytes, Encodable, Decodable};
|
19 | 20 | //!
|
20 | 21 | //! let mut request_header = RequestHeader::default();
|
21 | 22 | //! request_header.correlation_id = 1;
|
22 | 23 | //! request_header.client_id = Some(StrBytes::from_static_str("test-client"));
|
23 | 24 | //! let mut buf = BytesMut::new();
|
24 |
| -//! request_header.encode(&mut buf, 2); |
25 |
| -//! assert_eq!(request_header, RequestHeader::decode(&mut buf, 2).unwrap()); |
| 25 | +//! encode_request_header_into_buffer(&mut buf, &request_header).unwrap(); |
| 26 | +//! assert_eq!(request_header, decode_request_header_from_buffer(&mut buf).unwrap()); |
26 | 27 | //! ```
|
27 | 28 | //! Note that every message implementation of [`Encodable::encode`](crate::protocol::Encodable::encode)
|
28 | 29 | //! and [`Decodable::decode`](crate::protocol::Decodable::decode) requires a version to be provided
|
|
37 | 38 | //! type to a [`bytes::Bytes`] buffer.
|
38 | 39 | //!
|
39 | 40 | //! ```rust
|
40 |
| -//! use kafka_protocol::protocol::{StrBytes, Encodable, HeaderVersion}; |
| 41 | +//! use kafka_protocol::protocol::{StrBytes, Encodable, HeaderVersion, encode_request_header_into_buffer}; |
41 | 42 | //! use bytes::{BytesMut, Bytes};
|
42 | 43 | //! use kafka_protocol::messages::{RequestHeader, ApiKey, ApiVersionsRequest};
|
43 | 44 | //! # use std::error::Error;
|
|
47 | 48 | //! req_header.request_api_version = 3;
|
48 | 49 | //! req_header.request_api_key = ApiKey::ApiVersions as i16;
|
49 | 50 | //! req_header.client_id = Some(StrBytes::from_static_str("example"));
|
50 |
| -//! req_header.encode(&mut buf, ApiVersionsRequest::header_version(req_header.request_api_version)).unwrap(); |
| 51 | +//! encode_request_header_into_buffer(&mut buf, &req_header).unwrap(); |
51 | 52 | //! let mut api_versions_req = ApiVersionsRequest::default();
|
52 | 53 | //! api_versions_req.client_software_version = StrBytes::from_static_str("1.0");
|
53 | 54 | //! api_versions_req.client_software_name = StrBytes::from_static_str("example-client");
|
|
69 | 70 | //! A simple example for decoding an unknown message encoded in `buf`:
|
70 | 71 | //! ```rust
|
71 | 72 | //! use kafka_protocol::messages::{RequestHeader, ApiVersionsRequest, ApiKey, RequestKind};
|
72 |
| -//! use kafka_protocol::protocol::{Encodable, Decodable, StrBytes, HeaderVersion}; |
| 73 | +//! use kafka_protocol::protocol::{Encodable, Decodable, StrBytes, HeaderVersion, decode_request_header_from_buffer, encode_request_header_into_buffer}; |
73 | 74 | //! use bytes::{BytesMut, Buf};
|
74 | 75 | //! use std::convert::TryFrom;
|
75 | 76 | //! use kafka_protocol::protocol::buf::ByteBuf;
|
|
78 | 79 | //! # req_header.request_api_version = 3;
|
79 | 80 | //! # req_header.request_api_key = ApiKey::ApiVersions as i16;
|
80 | 81 | //! # req_header.client_id = Some(StrBytes::from_static_str("example"));
|
81 |
| -//! # req_header.encode(&mut buf, ApiVersionsRequest::header_version(req_header.request_api_version)).unwrap(); |
| 82 | +//! # encode_request_header_into_buffer(&mut buf, &req_header).unwrap(); |
82 | 83 | //! # let mut api_versions_req = ApiVersionsRequest::default();
|
83 | 84 | //! # api_versions_req.client_software_version = StrBytes::from_static_str("1.0");
|
84 | 85 | //! # api_versions_req.client_software_name = StrBytes::from_static_str("example-client");
|
85 |
| -//! # api_versions_req.encode(&mut buf, 3); |
| 86 | +//! # api_versions_req.encode(&mut buf, 3).unwrap(); |
86 | 87 | //!
|
87 |
| -//! let api_key = buf.peek_bytes(0..2).get_i16(); |
88 |
| -//! let api_version = buf.peek_bytes(2..4).get_i16(); |
89 |
| -//! let header_version = ApiKey::try_from(api_key).unwrap().request_header_version(api_version); |
90 | 88 | //!
|
91 |
| -//! let header = RequestHeader::decode(&mut buf, header_version).unwrap(); |
| 89 | +//! let header = decode_request_header_from_buffer(&mut buf).unwrap(); |
92 | 90 | //! let api_key = ApiKey::try_from(header.request_api_version);
|
93 | 91 | //! let req = match api_key {
|
94 | 92 | //! ApiVersionsKey => RequestKind::ApiVersions(ApiVersionsRequest::decode(&mut buf, header.request_api_version).unwrap()),
|
|
0 commit comments