Skip to content

Commit e9e0f13

Browse files
committed
updated mod level doc
1 parent 7276a1d commit e9e0f13

File tree

4 files changed

+75
-4
lines changed

4 files changed

+75
-4
lines changed

example-projects/fe2o3-amqp-example/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ async fn send_binary_event(sender: &mut Sender, i: usize, value: serde_json::Val
3535
async fn send_structured_event(sender: &mut Sender, i: usize, value: serde_json::Value) -> Result<()> {
3636
let event = EventBuilderV10::new()
3737
.id(i.to_string())
38-
.ty("example.test")
39-
.source("localhost")
40-
.extension("ext-name", "AMQP")
38+
.ty(EXAMPLE_TYPE)
39+
.source(EXAMPLE_SOURCE)
40+
.extension(EXTENSION_NAME, EXTENSION_VALUE)
4141
.data("application/json", value)
4242
.build()?;
4343
let event_message = EventMessage::from_structured_event(event)?;

src/binding/fe2o3_amqp/mod.rs

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,73 @@
1-
//! Implements AMQP 1.0 binding for CloudEvents
1+
//! This module integrated the [cloudevents-sdk](https://docs.rs/cloudevents-sdk) with
2+
//! [fe2o3-amqp](https://docs.rs/fe2o3-amqp/) to easily send and receiver CloudEvents
3+
//!
4+
//! To send CloudEvents
5+
//!
6+
//! ```rust
7+
//! use fe2o3_amqp::{Connection, Sender, Session};
8+
//! use cloudevents::{EventBuilderV10, binding::fe2o3_amqp::{EventMessage, AmqpMessage}};
9+
//!
10+
//! // You need a running AMQP 1.0 broker to try out this example.
11+
//! // With docker: docker run -it --rm -e ARTEMIS_USERNAME=guest -e ARTEMIS_PASSWORD=guest -p 5672:5672 vromero/activemq-artemis
12+
//!
13+
//! #[tokio::main]
14+
//! async fn main() {
15+
//! let mut connection =
16+
//! Connection::open("cloudevents-sdk-rust", "amqp://guest:guest@localhost:5672")
17+
//! .await
18+
//! .unwrap();
19+
//! let mut session = Session::begin(&mut connection).await.unwrap();
20+
//! let mut sender = Sender::attach(&mut session, "sender", "q1").await.unwrap();
21+
//!
22+
//! let event = EventBuilderV10::new()
23+
//! .id(i.to_string())
24+
//! .ty("example.test")
25+
//! .source("localhost")
26+
//! .extension("ext-name", "AMQP")
27+
//! .data("application/json", value)
28+
//! .build()
29+
//! .unwrap();
30+
//!
31+
//! let event_message = EventMessage::from_binary_event(event).unwrap();
32+
//! let message = AmqpMessage::from(event_message);
33+
//! sender.send(message).await.unwrap()
34+
//! .accepted_or("not accepted").unwrap();
35+
//!
36+
//! sender.close().await.unwrap();
37+
//! session.end().await.unwrap();
38+
//! connection.close().await.unwrap();
39+
//! }
40+
//! ```
41+
//!
42+
//! To receiver CloudEvents
43+
//!
44+
//! ```rust
45+
//! use fe2o3_amqp::{Connection, Receiver, Session};
46+
//! use cloudevents::{EventBuilderV10, binding::fe2o3_amqp::{EventMessage, AmqpMessage}};
47+
//!
48+
//! // You need a running AMQP 1.0 broker to try out this example.
49+
//! // With docker: docker run -it --rm -e ARTEMIS_USERNAME=guest -e ARTEMIS_PASSWORD=guest -p 5672:5672 vromero/activemq-artemis
50+
//!
51+
//! #[tokio::main]
52+
//! async fn main() {
53+
//! let mut connection =
54+
//! Connection::open("cloudevents-sdk-rust", "amqp://guest:guest@localhost:5672")
55+
//! .await
56+
//! .unwrap();
57+
//! let mut session = Session::begin(&mut connection).await.unwrap();
58+
//! let mut receiver = Receiver::attach(&mut session, "receiver", "q1").await.unwrap();
59+
//!
60+
//! let delivery = receiver.recv().await.unwrap();
61+
//! receiver.accept(&delivery).await.unwrap();
62+
//!
63+
//! let event_message = EventMessage::from(delivery.into_message());
64+
//! let event = MessageDeserializer::into_event(event_message).unwrap();
65+
//!
66+
//! sender.close().await.unwrap();
67+
//! session.end().await.unwrap();
68+
//! connection.close().await.unwrap();
69+
//! }
70+
//! ```
271
372
use std::convert::TryFrom;
473

src/binding/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
pub mod actix;
55
#[cfg(feature = "axum")]
66
pub mod axum;
7+
#[cfg_attr(docrs, doc(cfg(feature = "fe2o3-amqp")))]
78
#[cfg(feature = "fe2o3-amqp")]
89
pub mod fe2o3_amqp;
910
#[cfg(any(

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
5757
#![doc(html_root_url = "https://docs.rs/cloudevents-sdk/0.5.0")]
5858
#![deny(rustdoc::broken_intra_doc_links)]
59+
#![cfg_attr(docsrs, feature(doc_cfg))] // Show feature gate in doc
5960

6061
pub mod binding;
6162
pub mod event;

0 commit comments

Comments
 (0)