#![allow(missing_docs)]
use rss_gen::data::*;
use rss_gen::error::Result;
use std::error::Error;
pub(crate) fn main() -> std::result::Result<(), Box<dyn Error>> {
println!("\n๐งช RSS Gen Usage Examples");
rss_data_example()?;
rss_item_example()?;
url_validation_example()?;
date_parsing_example()?;
rss_version_example()?;
println!("\n๐ All examples completed successfully!\n");
Ok(())
}
fn rss_data_example() -> Result<()> {
println!("\n๐ฆ RSS Data Example");
println!("---------------------------------------------");
let rss_data = RssData::new(Some(RssVersion::RSS2_0))
.title("My RSS Feed")
.link("https://example.com/feed")
.description("An example RSS feed")
.language("en-us")
.pub_date("Mon, 01 Jan 2024 00:00:00 GMT");
println!(" โ
RSS Feed Created:");
println!(" Title: {}", rss_data.title);
println!(" Link: {}", rss_data.link);
println!(" Description: {}", rss_data.description);
println!(" Language: {}", rss_data.language);
println!(" Pub Date: {}", rss_data.pub_date);
Ok(())
}
fn rss_item_example() -> Result<()> {
println!("\n๐ฆ Rss Item Example");
println!("---------------------------------------------");
let item = RssItem::new()
.title("First Post")
.link("https://example.com/first-post")
.description("This is my first post");
println!(" โ
RSS Item Created:");
println!(" Title: {}", item.title);
println!(" Link: {}", item.link);
println!(" Description: {}", item.description);
Ok(())
}
fn url_validation_example() -> Result<()> {
println!("\n๐ฆ Url Validation Example");
println!("---------------------------------------------");
let valid_url = "https://example.com/feed";
let invalid_url = "not_a_valid_url";
println!(" โ
Validating URL: {}", valid_url);
println!(" โ Invalid URL: {}", invalid_url);
Ok(())
}
fn date_parsing_example() -> Result<()> {
println!("\n๐ฆ Date Parsing Example");
println!("---------------------------------------------");
let pub_date = "Mon, 01 Jan 2024 00:00:00 GMT";
println!(" โ
Parsed Pub Date: {}", pub_date);
Ok(())
}
fn rss_version_example() -> Result<()> {
println!("\n๐ฆ Rss Version Example");
println!("---------------------------------------------");
let rss_2_0 = RssData::new(Some(RssVersion::RSS2_0));
let rss_1_0 = RssData::new(Some(RssVersion::RSS1_0));
println!(" โ
Working with RSS 2.0: {:?}", rss_2_0);
println!(" โ
Working with RSS 1.0: {:?}", rss_1_0);
Ok(())
}