#![allow(missing_docs)]
use rss_gen::{generate_rss, parse_rss, RssData, RssVersion};
use std::error::Error;
#[derive(Debug)]
struct ExampleError {
message: String,
}
impl std::fmt::Display for ExampleError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "Example Error: {}", self.message)
}
}
impl Error for ExampleError {}
pub fn main() -> Result<(), Box<dyn Error>> {
println!("\n๐งช RSS Gen Library Usage Examples\n");
generate_rss_example()?;
parse_rss_example()?;
quick_rss_example()?;
println!("\n๐ All examples completed successfully!\n");
Ok(())
}
fn generate_rss_example() -> Result<(), Box<dyn Error>> {
println!("๐ฆ Generate Rss Feed Example");
println!("---------------------------------------------");
let rss_data = RssData::new(Some(RssVersion::RSS2_0))
.title("My Rust Blog")
.link("https://myrustblog.com")
.description("A blog about Rust programming and tutorials.");
let rss_feed = generate_rss(&rss_data).map_err(|e| {
Box::new(ExampleError {
message: format!("Failed to generate RSS feed: {}", e),
}) as Box<dyn Error>
})?;
println!(" โ
Generated RSS feed:\n {}", rss_feed);
Ok(())
}
fn parse_rss_example() -> Result<(), Box<dyn Error>> {
println!("\n๐ฆ Parse Rss Feed Example");
println!("---------------------------------------------");
let rss_content = r#"
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>My Rust Blog</title>
<link>https://myrustblog.com</link>
<description>A blog about Rust programming and tutorials.</description>
</channel>
</rss>
"#;
let rss_data = parse_rss(rss_content, None).map_err(|e| {
eprintln!("Error parsing RSS: {}", e);
e
})?;
println!(" โ
Parsed RSS feed: {:#?}", rss_data);
Ok(())
}
fn quick_rss_example() -> Result<(), Box<dyn Error>> {
println!("\n๐ฆ Quick RSS Generation Example");
println!("---------------------------------------------");
let rss_feed = rss_gen::quick_rss(
"Quick RSS Feed",
"https://example.com/quick",
"A quickly generated RSS feed",
)
.map_err(|e| {
Box::new(ExampleError {
message: format!(
"Failed to generate quick RSS feed: {}",
e
),
}) as Box<dyn Error>
})?;
println!(" โ
Generated quick RSS feed:\n {}", rss_feed);
Ok(())
}