mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
Refactor opentype crate ♻
- Restructure modules - Improve code and documentation clearity
This commit is contained in:
parent
83dd762f67
commit
229bd7783c
11
src/font.rs
11
src/font.rs
@ -10,7 +10,7 @@ use std::io::{self, Cursor, Read, Seek, SeekFrom};
|
|||||||
use byteorder::{BE, ReadBytesExt, WriteBytesExt};
|
use byteorder::{BE, ReadBytesExt, WriteBytesExt};
|
||||||
use opentype::{Error as OpentypeError, OpenTypeReader, Outlines, TableRecord, Tag};
|
use opentype::{Error as OpentypeError, OpenTypeReader, Outlines, TableRecord, Tag};
|
||||||
use opentype::tables::{Header, Name, CharMap, MaximumProfile, HorizontalMetrics, Post, OS2};
|
use opentype::tables::{Header, Name, CharMap, MaximumProfile, HorizontalMetrics, Post, OS2};
|
||||||
use opentype::tables::{MacStyleFlags, NameEntry};
|
use opentype::global::{MacStyleFlags, NameEntry};
|
||||||
use crate::doc::{Size, FontFamily};
|
use crate::doc::{Size, FontFamily};
|
||||||
|
|
||||||
|
|
||||||
@ -142,11 +142,10 @@ impl Font {
|
|||||||
{
|
{
|
||||||
let mut chars: Vec<char> = chars.into_iter().collect();
|
let mut chars: Vec<char> = chars.into_iter().collect();
|
||||||
chars.sort();
|
chars.sort();
|
||||||
let mut cursor = Cursor::new(&self.program);
|
|
||||||
let mut reader = OpenTypeReader::new(&mut cursor);
|
let mut reader = OpenTypeReader::from_slice(&self.program);
|
||||||
let outlines = reader.outlines()?;
|
let outlines = reader.outlines()?;
|
||||||
let mut tables = reader.tables()?.to_vec();
|
let tables = reader.tables()?.to_vec();
|
||||||
tables.sort_by_key(|r| r.tag);
|
|
||||||
|
|
||||||
Subsetter {
|
Subsetter {
|
||||||
font: &self,
|
font: &self,
|
||||||
@ -168,7 +167,7 @@ impl Font {
|
|||||||
struct Subsetter<'p> {
|
struct Subsetter<'p> {
|
||||||
// Original font
|
// Original font
|
||||||
font: &'p Font,
|
font: &'p Font,
|
||||||
reader: OpenTypeReader<'p, Cursor<&'p Vec<u8>>>,
|
reader: OpenTypeReader<Cursor<&'p [u8]>>,
|
||||||
outlines: Outlines,
|
outlines: Outlines,
|
||||||
tables: Vec<TableRecord>,
|
tables: Vec<TableRecord>,
|
||||||
cmap: Option<CharMap>,
|
cmap: Option<CharMap>,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user