Struct rss::Channel

source · []
pub struct Channel {
Show 25 fields pub title: String, pub link: String, pub description: String, pub language: Option<String>, pub copyright: Option<String>, pub managing_editor: Option<String>, pub webmaster: Option<String>, pub pub_date: Option<String>, pub last_build_date: Option<String>, pub categories: Vec<Category>, pub generator: Option<String>, pub docs: Option<String>, pub cloud: Option<Cloud>, pub rating: Option<String>, pub ttl: Option<String>, pub image: Option<Image>, pub text_input: Option<TextInput>, pub skip_hours: Vec<String>, pub skip_days: Vec<String>, pub items: Vec<Item>, pub extensions: ExtensionMap, pub itunes_ext: Option<ITunesChannelExtension>, pub dublin_core_ext: Option<DublinCoreExtension>, pub syndication_ext: Option<SyndicationExtension>, pub namespaces: BTreeMap<String, String>,
}
Expand description

Represents the channel of an RSS feed.

Fields

title: String

The name of the channel.

link: String

The URL for the website corresponding to the channel.

description: String

A description of the channel.

language: Option<String>

The language of the channel.

copyright: Option<String>

The copyright notice for the channel.

managing_editor: Option<String>

The email address for the managing editor.

webmaster: Option<String>

The email address for the webmaster.

pub_date: Option<String>

The publication date for the content of the channel as an RFC822 timestamp.

last_build_date: Option<String>

The date that the contents of the channel last changed as an RFC822 timestamp.

categories: Vec<Category>

The categories the channel belongs to.

generator: Option<String>

A string indicating the program used to generate the channel.

docs: Option<String>

A URL that points to the documentation for the RSS format.

cloud: Option<Cloud>

The cloud to register with to be notified of updates to the channel.

rating: Option<String>

The PICS rating for the channel.

ttl: Option<String>

The number of minutes the channel can be cached before refreshing.

image: Option<Image>

An image that can be displayed with the channel.

text_input: Option<TextInput>

A text input box that can be displayed with the channel.

skip_hours: Vec<String>

A hint to tell the aggregator which hours it can skip.

skip_days: Vec<String>

A hint to tell the aggregator which days it can skip.

items: Vec<Item>

The items in the channel.

extensions: ExtensionMap

The extensions for the channel.

itunes_ext: Option<ITunesChannelExtension>

The iTunes extension for the channel.

dublin_core_ext: Option<DublinCoreExtension>

The Dublin Core extension for the channel.

syndication_ext: Option<SyndicationExtension>

The Syndication extension for the channel.

namespaces: BTreeMap<String, String>

The namespaces present in the RSS tag.

Implementations

Return the title of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_title("Channel Title");
assert_eq!(channel.title(), "Channel Title");

Set the title of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_title("Channel Title");

Return the URL for the website corresponding to this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_link("http://example.com");
assert_eq!(channel.link(), "http://example.com");

Set the URL for the website corresponding to this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_link("http://example.com");

Return the description of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_description("Channel description");
assert_eq!(channel.description(), "Channel description");

Set the description of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_description("Channel description");

Return the language of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_language("en-US".to_string());
assert_eq!(channel.language(), Some("en-US"));

Set the language of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_language("en-US".to_string());

Return the copyright notice for this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_copyright("© 2017 John Doe".to_string());
assert_eq!(channel.copyright(), Some("© 2017 John Doe"));

Set the copyright notice for this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_copyright("© 2017 John Doe".to_string());

Return the email address for the managing editor of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_managing_editor("johndoe@example.com".to_string());
assert_eq!(channel.managing_editor(), Some("johndoe@example.com"));

Set the email address for the managing editor of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_managing_editor("johndoe@example.com".to_string());
assert_eq!(channel.managing_editor(), Some("johndoe@example.com"));

Return the email address for webmaster of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_webmaster("johndoe@example.com".to_string());
assert_eq!(channel.webmaster(), Some("johndoe@example.com"));

Set the email address for webmaster of this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_webmaster("johndoe@example.com".to_string());

Return the publication date for the content of this channel as an RFC822 timestamp.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_pub_date("Sun, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.pub_date(), Some("Sun, 1 Jan 2017 12:00:00 GMT"));

Set the publication date for the content of this channel as an RFC822 timestamp.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_pub_date("Sun, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.pub_date(), Some("Sun, 1 Jan 2017 12:00:00 GMT"));
Using chrono::DateTime
use rss::Channel;
use chrono::{TimeZone, Utc};

let mut channel = Channel::default();
channel.set_pub_date(Utc.ymd(2017, 1, 1).and_hms(12, 0, 0).to_rfc2822());
assert_eq!(channel.pub_date(), Some("Sun, 01 Jan 2017 12:00:00 +0000"));

Return the time that the content of this channel was last changed as an RFC822 timestamp.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_last_build_date("Sun, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.last_build_date(), Some("Sun, 1 Jan 2017 12:00:00 GMT"));

Set the time that the content of this channel was last changed as an RFC822 timestamp.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_last_build_date("Sun, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.last_build_date(), Some("Sun, 1 Jan 2017 12:00:00 GMT"));
Using chrono::DateTime
use rss::Channel;
use chrono::{TimeZone, Utc};

let mut channel = Channel::default();
channel.set_last_build_date(Utc.ymd(2017, 1, 1).and_hms(12, 0, 0).to_rfc2822());
assert_eq!(channel.last_build_date(), Some("Sun, 01 Jan 2017 12:00:00 +0000"));

Return the categories that this channel belongs to.

Examples
use rss::{Channel, Category};

let mut channel = Channel::default();
channel.set_categories(vec![Category::default()]);
assert_eq!(channel.categories().len(), 1);

Return a mutable slice of the categories that this channel belongs to.

Set the categories that this channel belongs to.

Examples
use rss::{Channel, Category};

let mut channel = Channel::default();
channel.set_categories(vec![Category::default()]);

Return a string indicating the program used to generate the channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_generator("Program Name".to_string());
assert_eq!(channel.generator(), Some("Program Name"));

Set a string indicating the program used to generate the channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_generator("Program Name".to_string());

Return a URL that points to the documentation of the RSS format used in this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_docs("https://cyber.harvard.edu/rss/rss.html".to_string());
assert_eq!(channel.docs(), Some("https://cyber.harvard.edu/rss/rss.html"));

Set a URL that points to the documentation of the RSS format used in this channel.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_docs("https://cyber.harvard.edu/rss/rss.html".to_string());

Return the information used to register with a cloud for notifications of updates to the channel.

Examples
use rss::{Channel, Cloud};

let mut channel = Channel::default();
channel.set_cloud(Cloud::default());
assert!(channel.cloud().is_some());

Set the information used to register with a cloud for notifications of updates to the channel.

Examples
use rss::{Channel, Cloud};

let mut channel = Channel::default();
channel.set_cloud(Cloud::default());

Return the time to live of this channel. This indicates the number of minutes the channel can be cached before needing to be refreshed.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_ttl("60".to_string());
assert_eq!(channel.ttl(), Some("60"));

Set the time to live of this channel. This indicates the number of minutes the channel can be cached before needing to be refreshed.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_ttl("60".to_string());

Return the image to be displayed with this channel.

Examples
use rss::{Channel, Image};

let mut channel = Channel::default();
channel.set_image(Image::default());
assert!(channel.image().is_some());

Set the image to be displayed with this channel.

Examples
use rss::{Channel, Image};

let mut channel = Channel::default();
channel.set_image(Image::default());

Return the PICS rating for this channel.

Set the PICS rating for this channel.

Return the information for a text box to be displayed with this channel.

Examples
use rss::{Channel, TextInput};

let mut channel = Channel::default();
channel.set_text_input(TextInput::default());
assert!(channel.text_input().is_some());

Set the information for a text box to be displayed with this channel.

Examples
use rss::{Channel, TextInput};

let mut channel = Channel::default();
channel.set_text_input(TextInput::default());

Return the hours that aggregators can skip for refreshing content.

Examples
use rss::Channel;

let skip_hours = vec![6, 7, 8, 14, 22];

let mut channel = Channel::default();
channel.set_skip_hours(vec!["1".to_string()]);
assert_eq!(channel.skip_hours().len(), 1);

Return a mutable slice of the hours that aggregators can skip for refreshing content.

Set the hours that aggregators can skip for refreshing content.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_skip_hours(vec!["1".to_string()]);

Return the days that aggregators can skip for refreshing content.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_skip_days(vec!["Monday".to_string()]);
assert_eq!(channel.skip_days().len(), 1);

Return a mutable slice of the days that aggregators can skip for refreshing content.

Set the days that aggregators can skip for refreshing content.

Examples
use rss::Channel;

let mut channel = Channel::default();
channel.set_skip_days(vec!["Monday".to_string()]);

Return the items in this channel.

Examples
use rss::{Channel, Item};

let mut channel = Channel::default();
channel.set_items(vec![Item::default()]);
assert_eq!(channel.items().len(), 1);

Return a mutable slice of the items in this channel.

Consume the Channel and return a vector of Items.

Examples
use rss::{Channel, Item};

let mut channel = Channel::default();
channel.set_items(vec![Item::default()]);
assert_eq!(channel.into_items().len(), 1);

Set the items in this channel.

Examples
use rss::{Channel, Item};

let mut channel = Channel::default();
channel.set_items(vec![Item::default()]);

Return the iTunes extension for this channel.

Examples
use rss::Channel;
use rss::extension::itunes::ITunesChannelExtension;

let mut channel = Channel::default();
channel.set_itunes_ext(ITunesChannelExtension::default());
assert!(channel.itunes_ext().is_some());

Set the iTunes extension for this channel.

Examples
use rss::Channel;
use rss::extension::itunes::ITunesChannelExtension;

let mut channel = Channel::default();
channel.set_itunes_ext(ITunesChannelExtension::default());

Return the Dublin Core extension for this channel.

Examples
use rss::Channel;
use rss::extension::dublincore::DublinCoreExtension;

let mut channel = Channel::default();
channel.set_dublin_core_ext(DublinCoreExtension::default());
assert!(channel.dublin_core_ext().is_some());

Set the Dublin Core extension for this channel.

Examples
use rss::Channel;
use rss::extension::dublincore::DublinCoreExtension;

let mut channel = Channel::default();
channel.set_dublin_core_ext(DublinCoreExtension::default());

Return the Syndication extension for this channel.

Examples
use rss::Channel;
use rss::extension::syndication::SyndicationExtension;

let mut channel = Channel::default();
channel.set_syndication_ext(SyndicationExtension::default());
assert!(channel.syndication_ext().is_some());

Set the Syndication extension for this channel.

Examples
use rss::Channel;
use rss::extension::syndication::SyndicationExtension;

let mut channel = Channel::default();
channel.set_syndication_ext(SyndicationExtension::default());

Return the extensions for this channel.

Examples
use std::collections::BTreeMap;
use rss::Channel;
use rss::extension::{ExtensionMap, Extension};

let extension = Extension::default();

let mut item_map = BTreeMap::<String, Vec<Extension>>::new();
item_map.insert("ext:name".to_string(), vec![extension]);

let mut extension_map = ExtensionMap::default();
extension_map.insert("ext".to_string(), item_map);

let mut channel = Channel::default();
channel.set_extensions(extension_map);
assert_eq!(channel.extensions()
                  .get("ext")
                  .and_then(|m| m.get("ext:name"))
                  .map(|v| v.len()),
           Some(1));

Set the extensions for this channel.

Examples
use rss::Channel;
use rss::extension::ExtensionMap;

let mut channel = Channel::default();
channel.set_extensions(ExtensionMap::default());

Return the namespaces for this channel.

Examples
use std::collections::BTreeMap;
use rss::Channel;

let mut namespaces = BTreeMap::new();
namespaces.insert("ext".to_string(), "http://example.com".to_string());

let mut channel = Channel::default();
channel.set_namespaces(namespaces);
assert_eq!(channel.namespaces().get("ext").map(String::as_str), Some("http://example.com"));

Set the namespaces for this channel.

Examples
use std::collections::BTreeMap;
use rss::Channel;

let mut channel = Channel::default();
channel.set_namespaces(BTreeMap::new());

Attempt to read an RSS channel from a reader.

Example
let reader: BufRead = ...;
let channel = Channel::read_from(reader).unwrap();

Attempt to write the RSS channel as XML to a writer.

Example
let channel: Channel = ...;
let writer: Write = ...;
channel.write_to(writer).unwrap();

Attempt to write the RSS channel as pretty XML to a writer.

Example
let channel: Channel = ...;
let writer: Write = ...;
channel.pretty_write_to(writer, b' ', 2).unwrap();

Builds a Channel from source XML

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

The associated error which can be returned from parsing.

Parses a string s to return a value of this type. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Converts the given value to a String. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.