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. A word
shaped through shape_with_fallback produces a Vec<WordSubRun>;
each sub-run is self-contained: its text is the source UTF-8 slice
covered by exactly this sub-run, its glyphs’ cluster offsets are
rebased to the sub-run’s local text (so plan_embedded can
build /ToUnicode without knowing about the parent word), and its
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.