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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//! RSS 2.0 and Atom 1.0 feed support.
//!
//! ## Building feeds
//!
//! Both formats use type-state builders that enforce required fields at
//! compile time. Call `.build()` only after all required fields are set.
//!
//! ```rust,ignore
//! use rama_http::protocols::rss::{Rss2Feed, Rss2Item, Rss2Guid};
//!
//! let feed = Rss2Feed::builder()
//! .title("My Blog")
//! .link("https://example.com")
//! .description("Latest posts")
//! .item(
//! Rss2Item::new()
//! .with_title("Hello World")
//! .with_guid(Rss2Guid::permalink("https://example.com/1")),
//! )
//! .build();
//! ```
//!
//! ## Serving feeds
//!
//! All feed types implement `IntoResponse`. The correct `Content-Type`
//! header (`application/rss+xml` or `application/atom+xml`) is set
//! automatically.
//!
//! ## Parsing feeds
//!
//! Use [`Feed::from_body`] (or [`FeedStream::from_body`] for true streaming
//! item-by-item processing) to parse a feed from an HTTP response. There is
//! no sync top-level parser — everything goes through the async streaming
//! reader.
//!
//! ## Streaming
//!
//! [`Rss2StreamWriter`] and [`AtomStreamWriter`] wrap an async item stream and
//! produce a streaming `Body` without buffering the full document.
//!
//! ## Extensions
//!
//! All extension fields are in the [`feed_ext`] sub-module. Items expose
//! inherent shortcuts (`.itunes()`, `.podcast()`, `.dublin_core()`,
//! `.content()`, `.media()`, `.podlove()`) for the six supported
//! namespaces: iTunes, Podcasting 2.0, Dublin Core, `content:encoded`,
//! Media RSS, and Podlove Simple Chapters (item-level only).
pub use ;
// ---------------------------------------------------------------------------
// Re-exports: RSS 2.0
// ---------------------------------------------------------------------------
pub use ;
// ---------------------------------------------------------------------------
// Re-exports: Atom 1.0
// ---------------------------------------------------------------------------
pub use ;
// ---------------------------------------------------------------------------
// Re-exports: Feed umbrella, parsing, streaming
// ---------------------------------------------------------------------------
pub use ;
pub use ;
// ---------------------------------------------------------------------------
// Re-exports: Extensions
// ---------------------------------------------------------------------------
pub use ;