feed_parser/lib.rs
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
//! This module contains various parsers used in the feed-parser library.
//!
//! The parsers module provides functionality to parse different types of
//! feed formats, such as RSS and Atom. Each parser is responsible for
//! handling the specific details of its respective feed format, ensuring
//! that the feed data is correctly interpreted and converted into a
//! standardized format for further processing.
//!
//! # Quick Start
//!
//! ```
//! use feed_parser::parsers::{Feed, rss2};
//!
//! let rss_data = r#"
//! <rss version="2.0">
//! <channel>
//! <title>RSS Title</title>
//! <link>http://www.example.com/main.html</link>
//! <description>This is an example of an RSS feed</description>
//! <item>
//! <title>Item 1</title>
//! <link>http://www.example.com/item1.html</link>
//! <description>Item 1 description</description>
//! <pubDate>2024-01-01T23:59:02Z</pubDate>
//! </item>
//! </channel>
//! </rss>
//! "#;
//! let feeds: Vec<Feed> = rss2::parse(rss_data).unwrap();
//! assert_eq!(feeds[0].title, "Item 1");
//! assert_eq!(feeds[0].link, "http://www.example.com/item1.html");
//! assert_eq!(feeds[0].description.clone().unwrap(), "Item 1 description");
//! ```
//!
//! # Modules
//!
//! - `rss1`: Contains the RSS1.0 parser implementation.
//! - `rss2`: Contains the RSS2.0 parser implementation.
//! - `atom`: Contains the Atom parser implementation.
//!
//! # Errors
//!
//! Parsing errors are handled gracefully, with detailed error messages
//! provided to help diagnose issues with the feed data.
pub mod parsers;