pub struct Document {
tree: Node<NodeData>,
session: Session,
ids: HashMap<String, Node<NodeData>>,
resources: RefCell<Resources>,
load_options: Arc<LoadOptions>,
stylesheets: Vec<Stylesheet>,
}
Expand description
A loaded SVG file and its derived data.
Fields§
§tree: Node<NodeData>
Tree of nodes; the root is guaranteed to be an <svg>
element.
session: Session
Metadata about the SVG handle.
ids: HashMap<String, Node<NodeData>>
Mapping from id
attributes to nodes.
resources: RefCell<Resources>
Othewr SVG documents and images referenced from this document.
This requires requires interior mutability because we load resources all over the place. Eventually we’ll be able to do this once, at loading time, and keep this immutable.
load_options: Arc<LoadOptions>
Used to load referenced resources.
stylesheets: Vec<Stylesheet>
Stylesheets defined in the document.
Implementations§
source§impl Document
impl Document
sourcepub fn load_from_stream(
session: Session,
load_options: Arc<LoadOptions>,
stream: &InputStream,
cancellable: Option<&Cancellable>,
) -> Result<Document, LoadingError>
pub fn load_from_stream( session: Session, load_options: Arc<LoadOptions>, stream: &InputStream, cancellable: Option<&Cancellable>, ) -> Result<Document, LoadingError>
Constructs a Document
by loading it from a stream.
sourcepub fn root(&self) -> Node<NodeData>
pub fn root(&self) -> Node<NodeData>
Gets the root node. This is guaranteed to be an <svg>
element.
sourcefn lookup_node(&self, node_id: &NodeId) -> Option<Node<NodeData>>
fn lookup_node(&self, node_id: &NodeId) -> Option<Node<NodeData>>
Looks up a node in this document or one of its resources by its id
attribute.
sourcepub fn lookup_internal_node(&self, id: &str) -> Option<Node<NodeData>>
pub fn lookup_internal_node(&self, id: &str) -> Option<Node<NodeData>>
Looks up a node in this document by its id
attribute.
sourcefn lookup_resource(&self, url: &str) -> Result<Resource, LoadingError>
fn lookup_resource(&self, url: &str) -> Result<Resource, LoadingError>
Loads a resource by URL, or returns a pre-loaded one.
sourcepub fn cascade(&mut self, extra: &[Stylesheet], session: &Session)
pub fn cascade(&mut self, extra: &[Stylesheet], session: &Session)
Runs the CSS cascade on the document tree
This uses the default UserAgent stylesheet, the document’s internal stylesheets, plus an extra set of stylesheets supplied by the caller.
pub fn get_intrinsic_dimensions(&self) -> IntrinsicDimensions
pub fn render_document( &self, session: &Session, cr: &Context, viewport: &Rectangle, options: &RenderingOptions, ) -> Result<(), InternalRenderingError>
pub fn render_layer( &self, session: &Session, cr: &Context, node: Node<NodeData>, viewport: &Rectangle, options: &RenderingOptions, ) -> Result<(), InternalRenderingError>
fn geometry_for_layer( &self, session: &Session, node: Node<NodeData>, viewport: Rect, options: &RenderingOptions, ) -> Result<(Rect, Rect), InternalRenderingError>
pub fn get_geometry_for_layer( &self, session: &Session, node: Node<NodeData>, viewport: &Rectangle, options: &RenderingOptions, ) -> Result<(Rectangle, Rectangle), InternalRenderingError>
fn get_bbox_for_element( &self, session: &Session, node: &Node<NodeData>, options: &RenderingOptions, ) -> Result<BoundingBox, InternalRenderingError>
sourcepub fn get_geometry_for_element(
&self,
session: &Session,
node: Node<NodeData>,
options: &RenderingOptions,
) -> Result<(Rectangle, Rectangle), InternalRenderingError>
pub fn get_geometry_for_element( &self, session: &Session, node: Node<NodeData>, options: &RenderingOptions, ) -> Result<(Rectangle, Rectangle), InternalRenderingError>
Returns (ink_rect, logical_rect)
pub fn render_element( &self, session: &Session, cr: &Context, node: Node<NodeData>, element_viewport: &Rectangle, options: &RenderingOptions, ) -> Result<(), InternalRenderingError>
Auto Trait Implementations§
impl !Freeze for Document
impl !RefUnwindSafe for Document
impl !Send for Document
impl !Sync for Document
impl Unpin for Document
impl !UnwindSafe for Document
Blanket Implementations§
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
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> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.