pub struct WordSubRun {
pub font: Font,
pub text: String,
pub glyphs: Vec<ShapedGlyph>,
pub advance_pt: f32,
}Expand description
One face’s slice of a per-glyph-fallback shaping result.
Each sub-run is self-contained: its text is the covered source slice,
cluster offsets are rebased to local text, and advance_pt is the sum of
per-glyph advances at the requested point size.
Caller emits one PDF TextRun per WordSubRun: same
baseline, x-cursor advances by advance_pt between sub-runs: and
PDF emit’s existing Tf switch fires naturally on the font change.
§Examples
use mos_fonts::{Base14Font, Font, WordSubRun};
let subrun = WordSubRun {
font: Font::Base14(Base14Font::Helvetica),
text: "A".to_owned(),
glyphs: Vec::new(),
advance_pt: 6.67,
};
assert_eq!(subrun.text, "A");Fields§
§font: FontWhich face owns the glyphs in this slice. May be the primary (no fallback was needed for this span) or a fallback face that covered codepoints the primary lacked.
text: StringSource byte slice covered by this sub-run. glyphs’ cluster
values are byte offsets into this field, not into the parent
word’s text.
glyphs: Vec<ShapedGlyph>Shaped glyphs in visual order (LTR). Cluster offsets are local
to text (rebased from the parent word’s full text). Empty for
Base14 sub-runs (Base14 has no glyph stream: PDF emit goes via
WinAnsi-byte encoding instead).
advance_pt: f32Total horizontal advance of this sub-run, in PDF user-space
units. Sum of PDF-emittable glyphs[i].advance_units scaled by
size_pt / units_per_em.
Trait Implementations§
Source§impl Clone for WordSubRun
impl Clone for WordSubRun
Source§fn clone(&self) -> WordSubRun
fn clone(&self) -> WordSubRun
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for WordSubRun
impl RefUnwindSafe for WordSubRun
impl Send for WordSubRun
impl Sync for WordSubRun
impl Unpin for WordSubRun
impl UnsafeUnpin for WordSubRun
impl UnwindSafe for WordSubRun
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.