Struct atom_syndication::Feed

source ·
pub struct Feed {
Show 17 fields pub title: Text, pub id: String, pub updated: FixedDateTime, pub authors: Vec<Person>, pub categories: Vec<Category>, pub contributors: Vec<Person>, pub generator: Option<Generator>, pub icon: Option<String>, pub links: Vec<Link>, pub logo: Option<String>, pub rights: Option<Text>, pub subtitle: Option<Text>, pub entries: Vec<Entry>, pub extensions: ExtensionMap, pub namespaces: BTreeMap<String, String>, pub base: Option<String>, pub lang: Option<String>,
}
Expand description

Represents an Atom feed

Fields§

§title: Text

A human-readable title for the feed.

§id: String

A universally unique and permanent URI.

§updated: FixedDateTime

The last time the feed was modified in a significant way.

§authors: Vec<Person>

The authors of the feed.

§categories: Vec<Category>

The categories that the feed belongs to.

§contributors: Vec<Person>

The contributors to the feed.

§generator: Option<Generator>

The software used to generate the feed.

§icon: Option<String>

A small image which provides visual identification for the feed.

§links: Vec<Link>

The Web pages related to the feed.

A larger image which provides visual identification for the feed.

§rights: Option<Text>

Information about rights held in and over the feed.

§subtitle: Option<Text>

A human-readable description or subtitle for the feed.

§entries: Vec<Entry>

The entries contained in the feed.

§extensions: ExtensionMap

The extensions for the feed.

§namespaces: BTreeMap<String, String>

The namespaces present in the feed tag.

§base: Option<String>

Base URL for resolving any relative references found in the element.

§lang: Option<String>

Indicates the natural language for the element.

Implementations§

Attempt to read an Atom feed from the reader.

Examples
use std::io::BufReader;
use std::fs::File;
use atom_syndication::Feed;

let file = File::open("example.xml").unwrap();
let feed = Feed::read_from(BufReader::new(file)).unwrap();

Attempt to write this Atom feed to a writer using default WriteConfig.

Examples
use std::io::BufReader;
use std::fs::File;
use atom_syndication::Feed;

let feed = Feed {
    title: "Feed Title".into(),
    id: "Feed ID".into(),
    ..Default::default()
};

let out = feed.write_to(Vec::new())?;
assert_eq!(&out, br#"<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Feed Title</title><id>Feed ID</id><updated>1970-01-01T00:00:00+00:00</updated></feed>"#);

Attempt to write this Atom feed to a writer.

Examples
use std::io::BufReader;
use std::fs::File;
use atom_syndication::{Feed, WriteConfig};

let feed = Feed {
    title: "Feed Title".into(),
    id: "Feed ID".into(),
    ..Default::default()
};

let mut out = Vec::new();
let config = WriteConfig {
    write_document_declaration: false,
    indent_size: Some(2),
};
feed.write_with_config(&mut out, config)?;
assert_eq!(&out, br#"<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Feed Title</title>
  <id>Feed ID</id>
  <updated>1970-01-01T00:00:00+00:00</updated>
</feed>"#);

Return the title of this feed.

Examples
use atom_syndication::Feed;

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

Set the title of this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_title("Feed Title");

Return the unique URI of this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_id("urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6");
assert_eq!(feed.id(), "urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6");

Set the unique URI of this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_id("urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6");

Return the last time that this feed was modified.

Examples
use atom_syndication::Feed;
use atom_syndication::FixedDateTime;
use std::str::FromStr;

let mut feed = Feed::default();
feed.set_updated(FixedDateTime::from_str("2017-06-03T15:15:44-05:00").unwrap());
assert_eq!(feed.updated().to_rfc3339(), "2017-06-03T15:15:44-05:00");

Set the last time that this feed was modified.

Examples
use atom_syndication::Feed;
use atom_syndication::FixedDateTime;
use std::str::FromStr;

let mut feed = Feed::default();
feed.set_updated(FixedDateTime::from_str("2017-06-03T15:15:44-05:00").unwrap());

Return the authors of this feed.

Examples
use atom_syndication::{Feed, Person};

let mut feed = Feed::default();
feed.set_authors(vec![Person::default()]);
assert_eq!(feed.authors().len(), 1);

Set the authors of this feed.

Examples
use atom_syndication::{Feed, Person};

let mut feed = Feed::default();
feed.set_authors(vec![Person::default()]);

Return the categories this feed belongs to.

Examples
use atom_syndication::{Feed, Category};

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

Set the categories this feed belongs to.

Examples
use atom_syndication::{Feed, Category};

let mut feed = Feed::default();
feed.set_categories(vec![Category::default()]);

Return the contributors to this feed.

Examples
use atom_syndication::{Feed, Person};

let mut feed = Feed::default();
feed.set_contributors(vec![Person::default()]);
assert_eq!(feed.contributors().len(), 1);

Set the contributors to this feed.

Examples
use atom_syndication::{Feed, Person};

let mut feed = Feed::default();
feed.set_contributors(vec![Person::default()]);

Return the name of the software used to generate this feed.

Examples
use atom_syndication::{Feed, Generator};

let mut feed = Feed::default();
feed.set_generator(Generator::default());
assert!(feed.generator().is_some());

Set the name of the software used to generate this feed.

Examples
use atom_syndication::{Feed, Generator};

let mut feed = Feed::default();
feed.set_generator(Generator::default());

Return the icon for this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_icon("http://example.com/icon.png".to_string());
assert_eq!(feed.icon(), Some("http://example.com/icon.png"));

Set the icon for this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_icon("http://example.com/icon.png".to_string());

Return the Web pages related to this feed.

Examples
use atom_syndication::{Feed, Link};

let mut feed = Feed::default();
feed.set_links(vec![Link::default()]);
assert_eq!(feed.links().len(), 1);

Set the Web pages related to this feed.

Examples
use atom_syndication::{Feed, Link};

let mut feed = Feed::default();
feed.set_links(vec![Link::default()]);

Return the logo for this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_logo("http://example.com/logo.png".to_string());
assert_eq!(feed.logo(), Some("http://example.com/logo.png"));

Set the logo for this feed.

Examples
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_logo("http://example.com/logo.png".to_string());

Return the information about the rights held in and over this feed.

Examples
use atom_syndication::{Feed, Text};

let mut feed = Feed::default();
feed.set_rights(Text::from("© 2017 John Doe"));
assert_eq!(feed.rights().map(Text::as_str), Some("© 2017 John Doe"));

Set the information about the rights held in and over this feed.

Examples
use atom_syndication::{Feed, Text};

let mut feed = Feed::default();
feed.set_rights(Text::from("© 2017 John Doe"));

Return the description or subtitle of this feed.

Examples
use atom_syndication::{Feed, Text};

let mut feed = Feed::default();
feed.set_subtitle(Text::from("Feed subtitle"));
assert_eq!(feed.subtitle().map(Text::as_str), Some("Feed subtitle"));

Set the description or subtitle of this feed.

Examples
use atom_syndication::{Feed, Text};

let mut feed = Feed::default();
feed.set_subtitle(Text::from("Feed subtitle"));

Return the entries in this feed.

Examples
use atom_syndication::{Feed, Entry};

let mut feed = Feed::default();
feed.set_entries(vec![Entry::default()]);
assert_eq!(feed.entries().len(), 1);

Set the entries in this feed.

Examples
use atom_syndication::{Feed, Entry};

let mut feed = Feed::default();
feed.set_entries(vec![Entry::default()]);

Return the extensions for this feed.

Examples
use std::collections::BTreeMap;
use atom_syndication::Feed;
use atom_syndication::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 feed = Feed::default();
feed.set_extensions(extension_map);
assert_eq!(feed.extensions()
               .get("ext")
               .and_then(|m| m.get("ext:name"))
               .map(|v| v.len()),
           Some(1));

Set the extensions for this feed.

Examples
use atom_syndication::Feed;
use atom_syndication::extension::ExtensionMap;

let mut feed = Feed::default();
feed.set_extensions(ExtensionMap::default());

Return the namespaces for this feed.

Examples
use std::collections::BTreeMap;
use atom_syndication::Feed;

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

let mut feed = Feed::default();
feed.set_namespaces(namespaces);
assert_eq!(feed.namespaces().get("ext").map(|s| s.as_str()), Some("http://example.com"));

Set the namespaces for this feed.

Examples
use std::collections::BTreeMap;
use atom_syndication::Feed;

let mut feed = Feed::default();
feed.set_namespaces(BTreeMap::new());

Return base URL of the feed.

Set base URL of the feed.

Return natural language of the feed.

Set the base URL of the feed.

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 ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
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
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.