pub struct ImageHrefResolver {
    pub resolve_data: Box<dyn Fn(&str, Arc<Vec<u8>>, &Options) -> Option<ImageKind> + Send + Sync>,
    pub resolve_string: Box<dyn Fn(&str, &Options) -> Option<ImageKind> + Send + Sync>,
}
Expand description

An xlink:href resolver for <image> elements.

This type can be useful if you want to have an alternative xlink:href handling to the default one. For example, you can forbid access to local files (which is allowed by default) or add support for resolving actual URLs (usvg doesn’t do any network requests).

Fields§

§resolve_data: Box<dyn Fn(&str, Arc<Vec<u8>>, &Options) -> Option<ImageKind> + Send + Sync>

Resolver function that will be used when xlink:href contains a Data URL.

A function would be called with mime, decoded base64 data and parsing options.

§resolve_string: Box<dyn Fn(&str, &Options) -> Option<ImageKind> + Send + Sync>

Resolver function that will be used to handle an arbitrary string in xlink:href.

Implementations§

source§

impl ImageHrefResolver

source

pub fn default_data_resolver( ) -> Box<dyn Fn(&str, Arc<Vec<u8>>, &Options) -> Option<ImageKind> + Send + Sync>

Creates a default Data URL resolver closure.

base64 encoded data is already decoded.

The default implementation would try to load JPEG, PNG, GIF, SVG and SVGZ types. Note that it will simply match the mime or data’s magic. The actual images would not be decoded. It’s up to the renderer.

source

pub fn default_string_resolver( ) -> Box<dyn Fn(&str, &Options) -> Option<ImageKind> + Send + Sync>

Creates a default string resolver.

The default implementation treats an input string as a file path and tries to open. If a string is an URL or something else it would be ignored.

Paths have to be absolute or relative to the input SVG file or relative to Options::resources_dir.

Trait Implementations§

source§

impl Debug for ImageHrefResolver

source§

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

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

impl Default for ImageHrefResolver

source§

fn default() -> Self

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

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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

§

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

§

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.