pub(crate) struct EmbeddedFontPlan {
pub id: EmbeddedFontId,
pub subset_bytes: Vec<u8>,
pub remapper: GlyphRemapper,
pub used_gids: Vec<u16>,
pub gid_to_text: BTreeMap<u16, String>,
}Expand description
Per-face plan: which glyph IDs were used, the subset bytes, the
GlyphRemapper that maps original → subset GIDs, and the
gid-to-source-text map used to build /ToUnicode.
Fields§
§id: EmbeddedFontId§subset_bytes: Vec<u8>§remapper: GlyphRemapper§used_gids: Vec<u16>Original GIDs used in content streams, including GID 0
(.notdef) when unsupported codepoints were shaped. This is
wider than gid_to_text: .notdef needs a PDF width but no
/ToUnicode mapping.
gid_to_text: BTreeMap<u16, String>Original GID → source text for that glyph’s cluster. For
ligatures (1 glyph, N codepoints) the value is the multi-char
cluster string. For 1:1 mappings (typical LTR) it’s a
single-char string. For one-codepoint-many-glyphs
decompositions (rare), the first glyph carries the codepoint
and later glyphs in the same cluster carry empty strings.
Co-populated with used_gids by accumulate_glyphs; keep those
sources of truth in sync.
Auto Trait Implementations§
impl Freeze for EmbeddedFontPlan
impl RefUnwindSafe for EmbeddedFontPlan
impl Send for EmbeddedFontPlan
impl Sync for EmbeddedFontPlan
impl Unpin for EmbeddedFontPlan
impl UnsafeUnpin for EmbeddedFontPlan
impl UnwindSafe for EmbeddedFontPlan
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
§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
T, using the provided data to resolve any offsets.