pub struct Channel { /* private fields */ }
Expand description
Represents the channel of an RSS feed.
Implementations
sourceimpl Channel
impl Channel
sourcepub fn title(&self) -> &str
pub fn title(&self) -> &str
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");
sourcepub fn set_title<V>(&mut self, title: V)where
V: Into<String>,
pub fn set_title<V>(&mut self, title: V)where
V: Into<String>,
Set the title of this channel.
Examples
use rss::Channel;
let mut channel = Channel::default();
channel.set_title("Channel Title");
sourcepub fn link(&self) -> &str
pub fn link(&self) -> &str
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");
sourcepub fn set_link<V>(&mut self, link: V)where
V: Into<String>,
pub fn set_link<V>(&mut self, link: V)where
V: Into<String>,
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");
sourcepub fn description(&self) -> &str
pub fn description(&self) -> &str
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");
sourcepub fn set_description<V>(&mut self, description: V)where
V: Into<String>,
pub fn set_description<V>(&mut self, description: V)where
V: Into<String>,
Set the description of this channel.
Examples
use rss::Channel;
let mut channel = Channel::default();
channel.set_description("Channel description");
sourcepub fn language(&self) -> Option<&str>
pub fn language(&self) -> Option<&str>
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"));
sourcepub fn set_language<V>(&mut self, language: V)where
V: Into<Option<String>>,
pub fn set_language<V>(&mut self, language: V)where
V: Into<Option<String>>,
Set the language of this channel.
Examples
use rss::Channel;
let mut channel = Channel::default();
channel.set_language("en-US".to_string());
sourcepub fn copyright(&self) -> Option<&str>
pub fn copyright(&self) -> Option<&str>
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"));
sourcepub fn set_copyright<V>(&mut self, copyright: V)where
V: Into<Option<String>>,
pub fn set_copyright<V>(&mut self, copyright: V)where
V: Into<Option<String>>,
Set the copyright notice for this channel.
Examples
use rss::Channel;
let mut channel = Channel::default();
channel.set_copyright("© 2017 John Doe".to_string());
sourcepub fn managing_editor(&self) -> Option<&str>
pub fn managing_editor(&self) -> Option<&str>
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"));
sourcepub fn set_managing_editor<V>(&mut self, managing_editor: V)where
V: Into<Option<String>>,
pub fn set_managing_editor<V>(&mut self, managing_editor: V)where
V: Into<Option<String>>,
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"));
sourcepub fn webmaster(&self) -> Option<&str>
pub fn webmaster(&self) -> Option<&str>
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"));
sourcepub fn set_webmaster<V>(&mut self, webmaster: V)where
V: Into<Option<String>>,
pub fn set_webmaster<V>(&mut self, webmaster: V)where
V: Into<Option<String>>,
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());
sourcepub fn pub_date(&self) -> Option<&str>
pub fn pub_date(&self) -> Option<&str>
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("Mon, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.pub_date(), Some("Mon, 1 Jan 2017 12:00:00 GMT"));
sourcepub fn set_pub_date<V>(&mut self, pub_date: V)where
V: Into<Option<String>>,
pub fn set_pub_date<V>(&mut self, pub_date: V)where
V: Into<Option<String>>,
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("Mon, 1 Jan 2017 12:00:00 GMT".to_string());
sourcepub fn last_build_date(&self) -> Option<&str>
pub fn last_build_date(&self) -> Option<&str>
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("Mon, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.last_build_date(), Some("Mon, 1 Jan 2017 12:00:00 GMT"));
sourcepub fn set_last_build_date<V>(&mut self, last_build_date: V)where
V: Into<Option<String>>,
pub fn set_last_build_date<V>(&mut self, last_build_date: V)where
V: Into<Option<String>>,
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("Mon, 1 Jan 2017 12:00:00 GMT".to_string());
sourcepub fn categories(&self) -> &[Category]
pub fn categories(&self) -> &[Category]
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);
sourcepub fn categories_mut(&mut self) -> &mut [Category]
pub fn categories_mut(&mut self) -> &mut [Category]
Return a mutable slice of the categories that this channel belongs to.
sourcepub fn set_categories<V>(&mut self, categories: V)where
V: Into<Vec<Category>>,
pub fn set_categories<V>(&mut self, categories: V)where
V: Into<Vec<Category>>,
Set the categories that this channel belongs to.
Examples
use rss::{Channel, Category};
let mut channel = Channel::default();
channel.set_categories(vec![Category::default()]);
sourcepub fn generator(&self) -> Option<&str>
pub fn generator(&self) -> Option<&str>
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"));
sourcepub fn set_generator<V>(&mut self, generator: V)where
V: Into<Option<String>>,
pub fn set_generator<V>(&mut self, generator: V)where
V: Into<Option<String>>,
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());
sourcepub fn docs(&self) -> Option<&str>
pub fn docs(&self) -> Option<&str>
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"));
sourcepub fn set_docs<V>(&mut self, docs: V)where
V: Into<Option<String>>,
pub fn set_docs<V>(&mut self, docs: V)where
V: Into<Option<String>>,
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());
sourcepub fn cloud(&self) -> Option<&Cloud>
pub fn cloud(&self) -> Option<&Cloud>
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());
sourcepub fn set_cloud<V>(&mut self, cloud: V)where
V: Into<Option<Cloud>>,
pub fn set_cloud<V>(&mut self, cloud: V)where
V: Into<Option<Cloud>>,
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());
sourcepub fn ttl(&self) -> Option<&str>
pub fn ttl(&self) -> Option<&str>
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"));
sourcepub fn set_ttl<V>(&mut self, ttl: V)where
V: Into<Option<String>>,
pub fn set_ttl<V>(&mut self, ttl: V)where
V: Into<Option<String>>,
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());
sourcepub fn image(&self) -> Option<&Image>
pub fn image(&self) -> Option<&Image>
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());
sourcepub fn set_image<V>(&mut self, image: V)where
V: Into<Option<Image>>,
pub fn set_image<V>(&mut self, image: V)where
V: Into<Option<Image>>,
Set the image to be displayed with this channel.
Examples
use rss::{Channel, Image};
let mut channel = Channel::default();
channel.set_image(Image::default());
sourcepub fn set_rating<V>(&mut self, rating: V)where
V: Into<Option<String>>,
pub fn set_rating<V>(&mut self, rating: V)where
V: Into<Option<String>>,
Set the PICS rating for this channel.
sourcepub fn text_input(&self) -> Option<&TextInput>
pub fn text_input(&self) -> Option<&TextInput>
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());
sourcepub fn set_text_input<V>(&mut self, text_input: V)where
V: Into<Option<TextInput>>,
pub fn set_text_input<V>(&mut self, text_input: V)where
V: Into<Option<TextInput>>,
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());
sourcepub fn skip_hours(&self) -> &[String]
pub fn skip_hours(&self) -> &[String]
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);
sourcepub fn skip_hours_mut(&mut self) -> &mut [String]
pub fn skip_hours_mut(&mut self) -> &mut [String]
Return a mutable slice of the hours that aggregators can skip for refreshing content.
sourcepub fn set_skip_hours<V>(&mut self, skip_hours: V)where
V: Into<Vec<String>>,
pub fn set_skip_hours<V>(&mut self, skip_hours: V)where
V: Into<Vec<String>>,
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()]);
sourcepub fn skip_days(&self) -> &[String]
pub fn skip_days(&self) -> &[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);
sourcepub fn skip_days_mut(&mut self) -> &mut [String]
pub fn skip_days_mut(&mut self) -> &mut [String]
Return a mutable slice of the days that aggregators can skip for refreshing content.
sourcepub fn set_skip_days<V>(&mut self, skip_days: V)where
V: Into<Vec<String>>,
pub fn set_skip_days<V>(&mut self, skip_days: V)where
V: Into<Vec<String>>,
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()]);
sourcepub fn items(&self) -> &[Item]
pub fn items(&self) -> &[Item]
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);
sourcepub fn items_mut(&mut self) -> &mut [Item]
pub fn items_mut(&mut self) -> &mut [Item]
Return a mutable slice of the items in this channel.
sourcepub fn into_items(self) -> Vec<Item>
pub fn into_items(self) -> Vec<Item>
Consume the Channel
and return a vector of Item
s.
Examples
use rss::{Channel, Item};
let mut channel = Channel::default();
channel.set_items(vec![Item::default()]);
assert_eq!(channel.into_items().len(), 1);
sourcepub fn set_items<V>(&mut self, items: V)where
V: Into<Vec<Item>>,
pub fn set_items<V>(&mut self, items: V)where
V: Into<Vec<Item>>,
Set the items in this channel.
Examples
use rss::{Channel, Item};
let mut channel = Channel::default();
channel.set_items(vec![Item::default()]);
sourcepub fn itunes_ext(&self) -> Option<&ITunesChannelExtension>
pub fn itunes_ext(&self) -> Option<&ITunesChannelExtension>
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());
sourcepub fn set_itunes_ext<V>(&mut self, itunes_ext: V)where
V: Into<Option<ITunesChannelExtension>>,
pub fn set_itunes_ext<V>(&mut self, itunes_ext: V)where
V: Into<Option<ITunesChannelExtension>>,
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());
sourcepub fn dublin_core_ext(&self) -> Option<&DublinCoreExtension>
pub fn dublin_core_ext(&self) -> Option<&DublinCoreExtension>
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());
sourcepub fn set_dublin_core_ext<V>(&mut self, dublin_core_ext: V)where
V: Into<Option<DublinCoreExtension>>,
pub fn set_dublin_core_ext<V>(&mut self, dublin_core_ext: V)where
V: Into<Option<DublinCoreExtension>>,
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());
sourcepub fn extensions(&self) -> &ExtensionMap
pub fn extensions(&self) -> &ExtensionMap
Return the extensions for this channel.
Examples
use std::collections::HashMap;
use rss::Channel;
use rss::extension::{ExtensionMap, Extension};
let extension = Extension::default();
let mut item_map = HashMap::<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));
sourcepub fn set_extensions<V>(&mut self, extensions: V)where
V: Into<ExtensionMap>,
pub fn set_extensions<V>(&mut self, extensions: V)where
V: Into<ExtensionMap>,
Set the extensions for this channel.
Examples
use rss::Channel;
use rss::extension::ExtensionMap;
let mut channel = Channel::default();
channel.set_extensions(ExtensionMap::default());
sourcepub fn namespaces(&self) -> &HashMap<String, String>
pub fn namespaces(&self) -> &HashMap<String, String>
Return the namespaces for this channel.
Examples
use std::collections::HashMap;
use rss::Channel;
let mut namespaces = HashMap::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(|s| s.as_str()), Some("http://example.com"));
sourceimpl Channel
impl Channel
sourcepub fn read_from<R: BufRead>(reader: R) -> Result<Channel, Error>
pub fn read_from<R: BufRead>(reader: R) -> Result<Channel, Error>
Attempt to read an RSS channel from a reader.
Example
let reader: BufRead = ...;
let channel = Channel::read_from(reader).unwrap();