Skip to content

Commit 0436209

Browse files
committed
fixed doctest
Signed-off-by: minghuaw <michael.wu1107@gmail.com>
1 parent 730b94e commit 0436209

File tree

3 files changed

+59
-16
lines changed

3 files changed

+59
-16
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,4 @@ mockito = "0.25.1"
8181
tokio = { version = "^1.0", features = ["full"] }
8282
mime = "0.3"
8383
tower = { version = "0.4", features = ["util"] }
84+
fe2o3-amqp = { version = "0.4" }

src/binding/fe2o3_amqp/mod.rs

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
//! To send CloudEvents
55
//!
66
//! ```rust
7+
//! use serde_json::json;
78
//! use fe2o3_amqp::{Connection, Sender, Session};
8-
//! use cloudevents::{EventBuilderV10, binding::fe2o3_amqp::{EventMessage, AmqpMessage}};
9+
//! use cloudevents::{
10+
//! EventBuilder, EventBuilderV10,
11+
//! binding::fe2o3_amqp::{EventMessage, AmqpMessage}
12+
//! };
913
//!
1014
//! // You need a running AMQP 1.0 broker to try out this example.
1115
//! // With docker: docker run -it --rm -e ARTEMIS_USERNAME=guest -e ARTEMIS_PASSWORD=guest -p 5672:5672 vromero/activemq-artemis
1216
//!
13-
//! #[tokio::main]
14-
//! async fn main() {
17+
//! # async fn send_event() {
1518
//! let mut connection =
1619
//! Connection::open("cloudevents-sdk-rust", "amqp://guest:guest@localhost:5672")
1720
//! .await
@@ -20,11 +23,11 @@
2023
//! let mut sender = Sender::attach(&mut session, "sender", "q1").await.unwrap();
2124
//!
2225
//! let event = EventBuilderV10::new()
23-
//! .id(i.to_string())
26+
//! .id("1")
2427
//! .ty("example.test")
2528
//! .source("localhost")
2629
//! .extension("ext-name", "AMQP")
27-
//! .data("application/json", value)
30+
//! .data("application/json", json!({"hello": "world"}))
2831
//! .build()
2932
//! .unwrap();
3033
//!
@@ -36,20 +39,22 @@
3639
//! sender.close().await.unwrap();
3740
//! session.end().await.unwrap();
3841
//! connection.close().await.unwrap();
39-
//! }
42+
//! # }
4043
//! ```
4144
//!
4245
//! To receiver CloudEvents
4346
//!
4447
//! ```rust
4548
//! use fe2o3_amqp::{Connection, Receiver, Session};
46-
//! use cloudevents::{EventBuilderV10, binding::fe2o3_amqp::{EventMessage, AmqpMessage}};
49+
//! use cloudevents::{
50+
//! EventBuilderV10, message::MessageDeserializer,
51+
//! binding::fe2o3_amqp::{EventMessage, AmqpMessage}
52+
//! };
4753
//!
4854
//! // You need a running AMQP 1.0 broker to try out this example.
4955
//! // With docker: docker run -it --rm -e ARTEMIS_USERNAME=guest -e ARTEMIS_PASSWORD=guest -p 5672:5672 vromero/activemq-artemis
5056
//!
51-
//! #[tokio::main]
52-
//! async fn main() {
57+
//! # async fn receive_event() {
5358
//! let mut connection =
5459
//! Connection::open("cloudevents-sdk-rust", "amqp://guest:guest@localhost:5672")
5560
//! .await
@@ -60,13 +65,14 @@
6065
//! let delivery = receiver.recv().await.unwrap();
6166
//! receiver.accept(&delivery).await.unwrap();
6267
//!
63-
//! let event_message = EventMessage::from(delivery.into_message());
68+
//! let message: AmqpMessage = delivery.into_message();
69+
//! let event_message = EventMessage::from(message);
6470
//! let event = MessageDeserializer::into_event(event_message).unwrap();
6571
//!
66-
//! sender.close().await.unwrap();
72+
//! receiver.close().await.unwrap();
6773
//! session.end().await.unwrap();
6874
//! connection.close().await.unwrap();
69-
//! }
75+
//! # }
7076
//! ```
7177
7278
use std::convert::TryFrom;
@@ -112,22 +118,57 @@ pub type AmqpBody = Body<Value>;
112118
/// ## [`Event`] -> [`AmqpMessage`] in binary content mode
113119
///
114120
/// ```rust
121+
/// use serde_json::json;
122+
/// use fe2o3_amqp_types::messaging::Message;
123+
/// use cloudevents::{EventBuilder, EventBuilderV10, binding::fe2o3_amqp::EventMessage};
124+
///
125+
/// let event = EventBuilderV10::new()
126+
/// .id("1")
127+
/// .ty("example.test")
128+
/// .source("localhost")
129+
/// .extension("ext-name", "AMQP")
130+
/// .data("application/json", json!({"hello": "world"}))
131+
/// .build()
132+
/// .unwrap();
115133
/// let event_message = EventMessage::from_binary_event(event).unwrap();
116-
/// let amqp_message = AmqpMessage:from(event_message);
134+
/// let amqp_message = Message::from(event_message);
117135
/// ```
118136
///
119137
/// ## [`Event`] -> [`AmqpMessage`] in structured content mode
120138
///
121139
/// ```rust
140+
/// use serde_json::json;
141+
/// use fe2o3_amqp_types::messaging::Message;
142+
/// use cloudevents::{EventBuilder, EventBuilderV10, binding::fe2o3_amqp::EventMessage};
143+
///
144+
/// let event = EventBuilderV10::new()
145+
/// .id("1")
146+
/// .ty("example.test")
147+
/// .source("localhost")
148+
/// .extension("ext-name", "AMQP")
149+
/// .data("application/json", json!({"hello": "world"}))
150+
/// .build()
151+
/// .unwrap();
122152
/// let event_message = EventMessage::from_structured_event(event).unwrap();
123-
/// let amqp_message = AmqpMessage:from(event_message);
153+
/// let amqp_message = Message::from(event_message);
124154
/// ```
125155
///
126156
/// ## [`AmqpMessage`] -> [`Event`]
127157
///
128158
/// ```rust
129-
/// let event_message = EventMessage::from(amqp_message);
130-
/// let event = MessageDeserializer::into_event(event_message).unwrap();
159+
/// use fe2o3_amqp::Receiver;
160+
/// use cloudevents::{
161+
/// message::MessageDeserializer,
162+
/// binding::fe2o3_amqp::{AmqpMessage, EventMessage}
163+
/// };
164+
///
165+
/// # async fn receive_event(receiver: &mut Receiver) {
166+
/// let delivery = receiver.recv().await.unwrap();
167+
/// receiver.accept(&delivery).await.unwrap();
168+
/// let amqp_message: AmqpMessage = delivery.into_message();
169+
/// let event_message = EventMessage::from(amqp_message);
170+
/// let event = MessageDeserializer::into_event(event_message).unwrap();
171+
/// # }
131172
/// ```
132173
pub struct EventMessage {
133174
pub content_type: Option<Symbol>,

src/binding/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pub mod actix;
66
#[cfg_attr(docsrs, doc(cfg(feature = "axum")))]
77
#[cfg(feature = "axum")]
88
pub mod axum;
9+
#[cfg_attr(docsrs, doc(cfg(feature = "fe2o3-amqp")))]
910
#[cfg(feature = "fe2o3-amqp")]
1011
pub mod fe2o3_amqp;
1112

0 commit comments

Comments
 (0)