ParseOptions

Struct ParseOptions 

Source
pub struct ParseOptions {
    pub resolve_relative_uris: bool,
    pub sanitize_html: bool,
    pub limits: ParserLimits,
}
Expand description

Parser configuration options

Controls various aspects of feed parsing behavior including URL resolution, HTML sanitization, and resource limits for DoS protection.

§Examples

use feedparser_rs::ParseOptions;

// Default options (recommended for most use cases)
let options = ParseOptions::default();
assert!(options.resolve_relative_uris);
assert!(options.sanitize_html);

// Custom options for restricted environment
let custom = ParseOptions {
    resolve_relative_uris: true,
    sanitize_html: false, // Trust feed content
    limits: feedparser_rs::ParserLimits::strict(),
};

Fields§

§resolve_relative_uris: bool

Whether to resolve relative URLs to absolute URLs

When true, relative URLs in links, images, and other resources are converted to absolute URLs using the feed’s base URL.

Default: true

§Examples

use feedparser_rs::ParseOptions;

let mut options = ParseOptions::default();
options.resolve_relative_uris = false; // Keep relative URLs
§sanitize_html: bool

Whether to sanitize HTML content in feed entries

When true, HTML content in titles, summaries, and content blocks is sanitized to remove potentially dangerous elements and attributes (scripts, iframes, etc.) while preserving safe formatting.

Default: true

§Security

Disabling HTML sanitization is not recommended unless you fully trust the feed source and have other security measures in place.

§Examples

use feedparser_rs::ParseOptions;

let mut options = ParseOptions::default();
options.sanitize_html = false; // Disable for trusted feeds
§limits: ParserLimits

Parser limits for DoS protection

Controls maximum allowed sizes for collections, text fields, and overall feed size to prevent resource exhaustion attacks.

Default: ParserLimits::default()

§Examples

use feedparser_rs::{ParseOptions, ParserLimits};

let options = ParseOptions {
    limits: ParserLimits::strict(), // Use stricter limits
    ..Default::default()
};

Implementations§

Source§

impl ParseOptions

Source

pub const fn permissive() -> Self

Creates permissive parse options

Suitable for trusted feeds where you want maximum compatibility and performance:

  • resolve_relative_uris: true
  • sanitize_html: false
  • limits: ParserLimits::permissive()
§Security Warning

Use only with trusted feed sources!

§Examples
use feedparser_rs::ParseOptions;

let options = ParseOptions::permissive();
assert!(!options.sanitize_html);
Source

pub const fn strict() -> Self

Creates strict parse options

Suitable for untrusted feeds in resource-constrained environments:

  • resolve_relative_uris: false (preserve original URLs)
  • sanitize_html: true (remove dangerous content)
  • limits: ParserLimits::strict() (tight resource limits)
§Examples
use feedparser_rs::ParseOptions;

let options = ParseOptions::strict();
assert!(options.sanitize_html);
assert!(!options.resolve_relative_uris);

Trait Implementations§

Source§

impl Clone for ParseOptions

Source§

fn clone(&self) -> ParseOptions

Returns a duplicate 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 ParseOptions

Source§

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

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

impl Default for ParseOptions

Source§

fn default() -> Self

Creates default parse options

Default configuration:

  • resolve_relative_uris: true
  • sanitize_html: true
  • limits: ParserLimits::default()

These defaults are suitable for most use cases and provide good security and compatibility.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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
Source§

impl<T> From<T> for T

Source§

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
Source§

impl<T, U> Into<U> for T
where 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> 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
Source§

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

Source§

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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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> 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