pub struct GlyphCache { /* private fields */ }Expand description
Memoized glyph outlines in 1000/em text space.
A miss is cached too: a glyph that produced no outline is stored as None
so it is not recomputed, which is what PDFium’s own null-result memoization
does.
The outlines are held behind an Arc so a caller that wants one for longer
than the borrow — the renderer’s per-glyph placement record, which cannot
hold a borrow because placing the next glyph needs the cache mutably again —
takes a refcount rather than a copy of the path. Copying instead was 2891
BezPath clones and 3.3 MiB per render of one corpus page, on a document
where the copies were then never read.
Implementations§
Source§impl GlyphCache
impl GlyphCache
Trait Implementations§
Source§impl Debug for GlyphCache
impl Debug for GlyphCache
Source§impl Default for GlyphCache
impl Default for GlyphCache
Source§fn default() -> GlyphCache
fn default() -> GlyphCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for GlyphCache
impl RefUnwindSafe for GlyphCache
impl Send for GlyphCache
impl Sync for GlyphCache
impl Unpin for GlyphCache
impl UnsafeUnpin for GlyphCache
impl UnwindSafe for GlyphCache
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
Mutably borrows from an owned value. Read more