Struct json_feed_model::Feed
source · [−]pub struct Feed { /* private fields */ }
Expand description
A list of items with associated metadata.
The type provides a view into a JSON object value with accessor methods for the standard properties.
Feed
owns the underlying JSON object data and provides methods to access the backing object itself
with as_map
, as_map_mut
, and into_inner
.
The underlying data is not guaranteed to be a valid JSON Feed.
Valid Feed
A Feed
must have the version
set to a valid JSON Feed version value, the title
property set, and the items
property set.
Example
use json_feed_model::{Feed};
let json = serde_json::json!({
"version": "https://jsonfeed.org/version/1.1",
"title": "Lorem ipsum dolor sit amet.",
"home_page_url": "https://example.org/",
"feed_url": "https://example.org/feed.json",
"items": [
{
"id": "cd7f0673-8e81-4e13-b273-4bd1b83967d0",
"content_text": "Aenean tristique dictum mauris, et.",
"url": "https://example.org/aenean-tristique"
},
{
"id": "2bcb497d-c40b-4493-b5ae-bc63c74b48fa",
"content_html": "Vestibulum non magna vitae tortor.",
"url": "https://example.org/vestibulum-non"
}
]
});
let feed = json_feed_model::from_value(json).unwrap();
assert_eq!(feed.version()?, Some(json_feed_model::VERSION_1_1));
assert_eq!(feed.title()?, Some("Lorem ipsum dolor sit amet."));
assert_eq!(feed.home_page_url()?, Some("https://example.org/"));
assert_eq!(feed.feed_url()?, Some("https://example.org/feed.json"));
let items = feed.items()?;
let items = items.unwrap();
assert_eq!(items.len(), 2);
assert_eq!(items[0].id()?, Some("cd7f0673-8e81-4e13-b273-4bd1b83967d0"));
assert_eq!(
items[0].content_text()?,
Some("Aenean tristique dictum mauris, et.")
);
assert_eq!(
items[0].url()?,
Some("https://example.org/aenean-tristique")
);
assert_eq!(items[1].id()?, Some("2bcb497d-c40b-4493-b5ae-bc63c74b48fa"));
assert_eq!(
items[1].content_html()?,
Some("Vestibulum non magna vitae tortor.")
);
assert_eq!(items[1].url()?, Some("https://example.org/vestibulum-non"));
Implementations
sourceimpl Feed
impl Feed
sourcepub fn as_map_mut(&mut self) -> &mut Map<String, Value>
pub fn as_map_mut(&mut self) -> &mut Map<String, Value>
Returns the inner Map
as a mutable reference.
sourcepub fn into_inner(self) -> Map<String, Value>
pub fn into_inner(self) -> Map<String, Value>
Converts the type into the inner Map
.
sourcepub fn version(&self) -> Result<Option<&str>, Error>
pub fn version(&self) -> Result<Option<&str>, Error>
The required URL formatted version identifier.
Identifies what version of the spec the feed is suppose to be compliant with.
sourcepub fn set_version<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_version<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the version identifier.
sourcepub fn remove_version(&mut self) -> Option<Value>
pub fn remove_version(&mut self) -> Option<Value>
Removes the version identifier.
sourcepub fn set_title<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_title<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the name of the feed.
sourcepub fn remove_title(&mut self) -> Option<Value>
pub fn remove_title(&mut self) -> Option<Value>
Removes the name of the feed.
sourcepub fn home_page_url(&self) -> Result<Option<&str>, Error>
pub fn home_page_url(&self) -> Result<Option<&str>, Error>
The optional URL which the feed is suppose to represent.
sourcepub fn set_home_page_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_home_page_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the home page URL.
sourcepub fn remove_home_page_url(&mut self) -> Option<Value>
pub fn remove_home_page_url(&mut self) -> Option<Value>
Removes the home page URL.
sourcepub fn feed_url(&self) -> Result<Option<&str>, Error>
pub fn feed_url(&self) -> Result<Option<&str>, Error>
The optional URL which this feed can be retrieived from.
sourcepub fn set_feed_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_feed_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the feed URL.
sourcepub fn remove_feed_url(&mut self) -> Option<Value>
pub fn remove_feed_url(&mut self) -> Option<Value>
Removes the feed URL.
sourcepub fn set_description<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_description<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the description of the feed.
sourcepub fn remove_description(&mut self) -> Option<Value>
pub fn remove_description(&mut self) -> Option<Value>
Removes the description of the feed.
sourcepub fn user_comment(&self) -> Result<Option<&str>, Error>
pub fn user_comment(&self) -> Result<Option<&str>, Error>
An optional meta description about the feed only intended to be viewed in the raw JSON form.
sourcepub fn set_user_comment<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_user_comment<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the user comment.
sourcepub fn remove_user_comment(&mut self) -> Option<Value>
pub fn remove_user_comment(&mut self) -> Option<Value>
Removes the user comment.
sourcepub fn set_next_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_next_url<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the next URL.
sourcepub fn remove_next_url(&mut self) -> Option<Value>
pub fn remove_next_url(&mut self) -> Option<Value>
Removes the next URL.
sourcepub fn icon(&self) -> Result<Option<&str>, Error>
pub fn icon(&self) -> Result<Option<&str>, Error>
An optional URL to an icon for use in a list of items.
sourcepub fn remove_icon(&mut self) -> Option<Value>
pub fn remove_icon(&mut self) -> Option<Value>
Removes the icon.
sourcepub fn favicon(&self) -> Result<Option<&str>, Error>
pub fn favicon(&self) -> Result<Option<&str>, Error>
An optional URL to a favicon suitable for use in a list of feeds.
sourcepub fn set_favicon<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_favicon<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the favicon URL.
sourcepub fn remove_favicon(&mut self) -> Option<Value>
pub fn remove_favicon(&mut self) -> Option<Value>
Removes the favicon URL.
An optional author.
Deprecation
The author
field is deprecated in favor of the authors
field as of JSON Feed 1.1.
An optional author.
Deprecation
The author
field is deprecated in favor of the authors
field as of JSON Feed 1.1.
Sets the author.
Removes the author.
An optional array of authors.
An optional array of authors.
Sets the authors.
Removes the authors.
sourcepub fn language(&self) -> Result<Option<&str>, Error>
pub fn language(&self) -> Result<Option<&str>, Error>
The optional language which the feed data is written in.
Valid values are from RFC 5646.
sourcepub fn set_language<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
pub fn set_language<T>(&mut self, value: T) -> Option<Value> where
T: ToString,
Sets the language.
sourcepub fn remove_language(&mut self) -> Option<Value>
pub fn remove_language(&mut self) -> Option<Value>
Removes the language.
sourcepub fn expired(&self) -> Result<Option<bool>, Error>
pub fn expired(&self) -> Result<Option<bool>, Error>
Optionally determines if the feed will be updated in the future.
If true, the feed will not be updated in the future. If false or None
, then the feed may be updated in the future.
sourcepub fn set_expired<T>(&mut self, value: bool) -> Option<Value>
pub fn set_expired<T>(&mut self, value: bool) -> Option<Value>
Sets the expired flag.
sourcepub fn remove_expired(&mut self) -> Option<Value>
pub fn remove_expired(&mut self) -> Option<Value>
Removes the expired flag.
sourcepub fn hubs(&self) -> Result<Option<Vec<HubRef<'_>>>, Error>
pub fn hubs(&self) -> Result<Option<Vec<HubRef<'_>>>, Error>
Optional subscription endpoints which can be used to received feed update notifications.
sourcepub fn hubs_mut(&mut self) -> Result<Option<Vec<HubMut<'_>>>, Error>
pub fn hubs_mut(&mut self) -> Result<Option<Vec<HubMut<'_>>>, Error>
Subscription endpoints which can be used to received feed update notifications.
sourcepub fn set_hubs<I>(&mut self, items: I) -> Option<Value> where
I: IntoIterator<Item = Hub>,
pub fn set_hubs<I>(&mut self, items: I) -> Option<Value> where
I: IntoIterator<Item = Hub>,
Sets the hubs.
sourcepub fn remove_hubs(&mut self) -> Option<Value>
pub fn remove_hubs(&mut self) -> Option<Value>
Removes the hubs.
sourcepub fn items_mut(&mut self) -> Result<Option<Vec<ItemMut<'_>>>, Error>
pub fn items_mut(&mut self) -> Result<Option<Vec<ItemMut<'_>>>, Error>
A required array of Items
.
sourcepub fn set_items<I>(&mut self, items: I) -> Option<Value> where
I: IntoIterator<Item = Item>,
pub fn set_items<I>(&mut self, items: I) -> Option<Value> where
I: IntoIterator<Item = Item>,
Sets the items.
sourcepub fn remove_items(&mut self) -> Option<Value>
pub fn remove_items(&mut self) -> Option<Value>
Removes the items.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Feed
impl<'de> Deserialize<'de> for Feed
sourcefn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Feed
Auto Trait Implementations
impl RefUnwindSafe for Feed
impl Send for Feed
impl Sync for Feed
impl Unpin for Feed
impl UnwindSafe for Feed
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more