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§

source§

impl Channel

source

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");
source

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");

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");
source

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");
source

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");
source

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"));
source

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());
source

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"));

Set the copyright notice for this channel.

Examples
use rss::Channel;

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

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"));
source

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"));
source

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"));
source

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());
source

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("Sun, 1 Jan 2017 12:00:00 GMT".to_string());
assert_eq!(channel.pub_date(), Some("Sun, 1 Jan 2017 12:00:00 GMT"));
source

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("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.with_ymd_and_hms(2017, 1, 1, 12, 0, 0).unwrap().to_rfc2822());
assert_eq!(channel.pub_date(), Some("Sun, 1 Jan 2017 12:00:00 +0000"));
source

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("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"));
source

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("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.with_ymd_and_hms(2017, 1, 1, 12, 0, 0).unwrap().to_rfc2822());
assert_eq!(channel.last_build_date(), Some("Sun, 1 Jan 2017 12:00:00 +0000"));
source

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);
source

pub fn categories_mut(&mut self) -> &mut [Category]

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

source

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()]);
source

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"));
source

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());
source

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"));
source

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());
source

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());
source

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());
source

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"));
source

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());
source

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());
source

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());
source

pub fn rating(&self) -> Option<&str>

Return the PICS rating for this channel.

source

pub fn set_rating<V>(&mut self, rating: V)where V: Into<Option<String>>,

Set the PICS rating for this channel.

source

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());
source

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());
source

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);
source

pub fn skip_hours_mut(&mut self) -> &mut [String]

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

source

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()]);
source

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);
source

pub fn skip_days_mut(&mut self) -> &mut [String]

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

source

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()]);
source

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);
source

pub fn items_mut(&mut self) -> &mut [Item]

Return a mutable slice of the items in this channel.

source

pub fn into_items(self) -> Vec<Item>

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);
source

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()]);
source

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());
source

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());
source

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());
source

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());
source

pub fn syndication_ext(&self) -> Option<&SyndicationExtension>

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());
source

pub fn set_syndication_ext<V>(&mut self, syndication_ext: V)where V: Into<Option<SyndicationExtension>>,

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());
source

pub fn extensions(&self) -> &ExtensionMap

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));
source

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());
source

pub fn namespaces(&self) -> &BTreeMap<String, String>

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"));
source

pub fn set_namespaces<V>(&mut self, namespaces: V)where V: Into<BTreeMap<String, String>>,

Set the namespaces for this channel.

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

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

impl Channel

source

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();
source

pub fn write_to<W: Write>(&self, writer: W) -> Result<W, Error>

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

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

pub fn pretty_write_to<W: Write>( &self, writer: W, indent_char: u8, indent_size: usize ) -> Result<W, Error>

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();
source§

impl Channel

source

pub fn from_xml<R: BufRead>( namespaces: &BTreeMap<String, String>, reader: &mut Reader<R>, atts: Attributes<'_> ) -> Result<Self, Error>

Builds a Channel from source XML

Trait Implementations§

source§

impl Clone for Channel

source§

fn clone(&self) -> Channel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Channel

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Channel

source§

fn default() -> Channel

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

impl<'de> Deserialize<'de> for Channel

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FromStr for Channel

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Channel, Error>

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

impl PartialEq for Channel

source§

fn eq(&self, other: &Channel) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Channel

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl ToString for Channel

source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl Validate for Channel

source§

fn validate(&self) -> Result<(), ValidationError>

Validate the data against the RSS specification.
source§

impl StructuralPartialEq for Channel

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,