pub struct CrossRefResolve {
pub registry: NumberRegistry,
pub target: String,
}Expand description
Resolves Node::CrossRef nodes by looking up their target label in a
NumberRegistry produced by crate::AutoNumber.
For the “web” target a CrossRef is replaced by a Node::Link whose
url is #<target> and whose display text is e.g. "Figure 1".
For the “print” target the node is replaced by a plain Node::Text
containing the same display text (page numbers would be added by a
downstream typesetter).
If the target label is not found in the registry the CrossRef node is
left in place unchanged so that downstream tools can handle it or report the
error.
§Example
use rdx_transform::{AutoNumber, CrossRefResolve, Transform, parse};
let mut root = parse(
"<Figure id=\"fig:arch\">\n</Figure>\n\
See {@fig:arch}.\n",
);
let numberer = AutoNumber::new();
numberer.transform(&mut root, "");
let registry = numberer.registry().entries.clone();
let resolver = CrossRefResolve::new(
rdx_transform::NumberRegistry { entries: registry },
"web",
);
resolver.transform(&mut root, "");Fields§
§registry: NumberRegistry§target: StringOutput target: "web" or "print".
Implementations§
Source§impl CrossRefResolve
impl CrossRefResolve
pub fn new(registry: NumberRegistry, target: impl Into<String>) -> Self
Trait Implementations§
Source§impl Transform for CrossRefResolve
impl Transform for CrossRefResolve
Auto Trait Implementations§
impl Freeze for CrossRefResolve
impl RefUnwindSafe for CrossRefResolve
impl Send for CrossRefResolve
impl Sync for CrossRefResolve
impl Unpin for CrossRefResolve
impl UnsafeUnpin for CrossRefResolve
impl UnwindSafe for CrossRefResolve
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.