ParsedFeed

Struct ParsedFeed 

Source
pub struct ParsedFeed {
    pub feed: FeedMeta,
    pub entries: Vec<Entry>,
    pub bozo: bool,
    pub bozo_exception: Option<String>,
    pub encoding: String,
    pub version: FeedVersion,
    pub namespaces: HashMap<String, String>,
    pub status: Option<u16>,
    pub href: Option<String>,
    pub etag: Option<String>,
    pub modified: Option<String>,
    pub headers: Option<HashMap<String, String>>,
}
Expand description

Parsed feed result

This is the main result type returned by the parser, analogous to Python feedparser’s FeedParserDict.

Fields§

§feed: FeedMeta

Feed metadata

§entries: Vec<Entry>

Feed entries/items

§bozo: bool

True if parsing encountered errors

§bozo_exception: Option<String>

Description of parsing error (if bozo is true)

§encoding: String

Detected or declared encoding

§version: FeedVersion

Detected feed format version

§namespaces: HashMap<String, String>

XML namespaces (prefix -> URI)

§status: Option<u16>

HTTP status code (if fetched from URL)

§href: Option<String>

Final URL after redirects (if fetched from URL)

§etag: Option<String>

ETag header from HTTP response

§modified: Option<String>

Last-Modified header from HTTP response

§headers: Option<HashMap<String, String>>

HTTP response headers (if fetched from URL)

Implementations§

Source§

impl ParsedFeed

Source

pub fn new() -> Self

Creates a new ParsedFeed with default UTF-8 encoding

Source

pub fn with_capacity(entry_count: usize) -> Self

Creates a ParsedFeed with pre-allocated capacity for entries

This method pre-allocates space for the expected number of entries, reducing memory allocations during parsing.

§Arguments
  • entry_count - Expected number of entries in the feed
§Examples
use feedparser_rs::ParsedFeed;

let feed = ParsedFeed::with_capacity(50);
assert_eq!(feed.encoding, "utf-8");
Source

pub fn check_entry_limit( &mut self, reader: &mut Reader<&[u8]>, buf: &mut Vec<u8>, limits: &ParserLimits, depth: &mut usize, ) -> Result<bool>

Check if entry limit is reached, set bozo flag and skip element if so

This helper consolidates the duplicate entry limit checking logic used in RSS and Atom parsers. If the entry limit is reached, it:

  • Sets bozo flag to true
  • Sets bozo_exception with descriptive error message
  • Skips the entry element
  • Returns Ok(false) to signal that the entry should not be processed
§Arguments
  • reader - XML reader positioned at the entry element
  • buf - Buffer for XML event reading
  • limits - Parser limits including max_entries
  • depth - Current nesting depth (will be decremented)
§Returns
  • Ok(true) - Entry can be processed (limit not reached)
  • Ok(false) - Entry limit reached, element was skipped
§Errors

Returns an error if:

  • Skipping the entry element fails (e.g., malformed XML)
  • Nesting depth exceeds limits while skipping
§Examples
// In parser:
if !feed.check_entry_limit(reader, &mut buf, limits, depth)? {
    continue;
}
// Process entry...

Trait Implementations§

Source§

impl Clone for ParsedFeed

Source§

fn clone(&self) -> ParsedFeed

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ParsedFeed

Source§

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

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

impl Default for ParsedFeed

Source§

fn default() -> ParsedFeed

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

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

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

§

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more