Skip to main content

Crate apace_dom

Crate apace_dom 

Source
Expand description

The core DOM abstraction in Apace

This crate implements a flexible headless DOM (BaseDocument), which is designed to emebedded in and “driven” by external code. Most users will want to use a wrapper:

It includes: A DOM tree respresentation, CSS parsing and resolution, layout and event handling. Additional functionality is available in separate crates, including html parsing (apace-html), networking (apace-net), rendering (apace-paint) and windowing (apace-shell).

Most of the functionality in this crates is provided through the struct.

apace-dom has a native Rust API that is designed for higher-level abstractions to be built on top (although it can also be used directly).

The goal behind this crate is that any implementor can interact with the DOM and render it out using any renderer they want.

Re-exports§

pub use crate::node::Widget;
pub use node::Attribute;
pub use node::DocumentData;
pub use node::ElementData;
pub use node::Node;
pub use node::NodeData;
pub use node::TextNodeData;
pub use util::Point;
pub use util::decode_font_bytes;

Modules§

net
node
The nodes themsleves, and their data.
profile
Opt-in, bounded engine phase measurements. Samples are inclusive; nested text work and parallel worker totals must not be added to wall time.
traversal
util

Macros§

local_name
Takes a local name as a string and returns its key in the string cache.
namespace_prefix
Takes a namespace prefix string and returns its key in a string cache.
namespace_url
Takes a namespace url string and returns its key in a string cache.
ns
Maps the input of namespace_prefix! to the output of namespace_url!.
qual_name
Creates an markup5ever::QualName. Given a local name and an optional namespace

Structs§

BaseDocument
BoundingRect
CssRuleInfo
A snapshot of the CSSOM-visible attributes of a rule
DocumentConfig
Options used when constructing a BaseDocument
DocumentMutator
DummyHtmlParserProvider
EventDriver
FontContext
A font database/cache (wrapper around a Fontique Collection and SourceCache).
HoistedPaintChild
A child with a z_index that is hoisted up to it’s containing Stacking Context for paint purposes
ImageLoadEvent
ImageRequestId
One live element consumer, independently of a shared URL fetch.
IntrinsicSizes
The intrinsic dimensions of a replaced element per CSS Images 3 (https://drafts.csswg.org/css-images/#intrinsic-dimensions): an intrinsic width, an intrinsic height, and an intrinsic aspect ratio, each of which may independently be absent.
MediaType
https://drafts.csswg.org/mediaqueries/#media-types
NamespaceStaticSet
NodeId
A versioned identifier for a node in a Apace DOM tree.
NodeTree
The versioned map in which the nodes of the DOM tree are stored, backed by a slotmap::SlotMap.
NoopEventHandler
PlainDocument
PrefixStaticSet
QualName
A fully qualified name (with a namespace), used to depict names of tags and attributes.
ResourceLimits
ResourceStats
RestyleHint
The kind of restyle we need to do for a given element.
StackingContext
TopLayer
TopLayerConfig
UserAgentStylesheet
A user-agent stylesheet, parsed with a read-only lock so that it can be shared between documents.

Enums§

CssomError
Errors from CSSOM mutation operations, mirroring the DOMException names which the corresponding JavaScript APIs throw.
DocGuard
DocGuardMut
ImageLoadStatus
RegisterCustomPropertyResult
ScrollBehavior
ScrollLogicalPosition
StyleThreading
Strategy for Stylo’s style traversal during resolve.
TopLayerError

Constants§

BULLET_FONT
DEFAULT_CSS
MAX_TOP_LAYERS

Traits§

Document
Abstraction over wrappers around BaseDocument to allow for them all to be driven by apace-shell
EventHandler
HtmlParserProvider

Functions§

build_single_font_ctx
Convenience builder for the one-font case: produces a FontContext with system-font discovery disabled and the supplied font registered as the fallback for every generic family. The standard setup for WASM, where browsers don’t expose system fonts. WOFF/WOFF2 inputs are decoded automatically.
css_property_is_supported
Check whether name names a CSS property supported by the style engine. Custom properties (--*) are not considered “supported” here, matching the behaviour of the in operator on CSSStyleDeclaration objects in browsers.
dom_node_id
Convert a takia::NodeId produced by takia_node_id back into a Apace NodeId.
full_size_kana
Maps small kana to full-size kana. https://drafts.csswg.org/css-text-3/#small-kana
full_width
Maps c to its full-width form: the reverse of its <wide> decomposition mapping or its <narrow> decomposition mapping, if any. https://drafts.csswg.org/css-text-3/#text-transform-mapping
hoisted_child_position
Offset of the hoisted child child_id from the border box of its stacking-context root sc_root_id, excluding the child’s own final_layout().location: the sum of location - scroll_offset of every box strictly between the two on the child’s positioning chain.
parse_transform_matrix
Parse a CSS transform list into a 4x4 matrix, as required by the DOMMatrix(DOMString) constructor and DOMMatrix.setMatrixValue() (https://drafts.fxtf.org/geometry/#parse-a-string-into-an-abstract-matrix).
resolve_2d_transform
resolved_style_property_names
The names of the properties exposed by the CSSStyleDeclaration returned from getComputedStyle() (its indexed properties): every enabled longhand, sorted alphabetically.
takia_node_id
Convert a Apace NodeId into a takia::NodeId (which wraps a u64).

Type Aliases§

Atom
LocalName
Namespace
Prefix
SelectorList