Enum FeedItem
pub enum FeedItem {
Rss2(Rss2Item),
Atom(AtomEntry),
}http and rss only.Expand description
One item or entry, regardless of the originating feed format. Yielded by
FeedStream when iterated as a Stream; convert into a strongly-typed
Rss2Item / AtomEntry with the obvious match, or use the
cross-format accessors directly on this enum.
Variants§
Implementations§
§impl FeedItem
impl FeedItem
pub fn title(&self) -> Option<&str>
pub fn title(&self) -> Option<&str>
Atom requires a title; RSS makes it optional. Caller should be ready
for None on an RSS item that only carries <description>.
pub fn link(&self) -> Option<&str>
pub fn link(&self) -> Option<&str>
RSS <link> | Atom <link rel="alternate"> (or first link without
rel, since Atom defaults rel to "alternate").
pub fn content(&self) -> Option<&str>
pub fn content(&self) -> Option<&str>
Long-form body. Atom <content> (any of text/html/xhtml). For RSS,
returns <content:encoded> if present, otherwise falls back to
<description> — many publishers put the full body there. The fallback
means summary() and content() may return the same string on RSS
items without content:encoded.
For Atom out-of-line content (<content src="..." type="..."/>)
returns None: the body lives at the remote URL, not in the feed.
Use the per-format types directly if you need the src / type
pair.
Item-level authors. RSS yields <author> (if any) plus the
dc:creator extension (if set, deduplicated against <author>);
Atom yields the <author> Person names. Empty strings are dropped.
pub fn updated(&self) -> Option<Timestamp>
pub fn updated(&self) -> Option<Timestamp>
Atom <updated> (required) | RSS has no per-item updated — None.
pub fn categories(&self) -> impl Iterator<Item = &str>
pub fn categories(&self) -> impl Iterator<Item = &str>
Item-level category names / terms.
pub fn enclosures(&self) -> impl Iterator<Item = EnclosureView<'_>>
pub fn enclosures(&self) -> impl Iterator<Item = EnclosureView<'_>>
Attached binaries (podcast audio etc.). RSS <enclosure> | Atom
<link rel="enclosure">. The two encodings normalise to the same
(url, length, mime) triple via EnclosureView.
Trait Implementations§
impl StructuralPartialEq for FeedItem
Auto Trait Implementations§
impl Freeze for FeedItem
impl RefUnwindSafe for FeedItem
impl Send for FeedItem
impl Sync for FeedItem
impl Unpin for FeedItem
impl UnsafeUnpin for FeedItem
impl UnwindSafe for FeedItem
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer