[[package]]
name = "font-types"
-version = "0.8.4"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fa6a5e5a77b5f3f7f9e32879f484aa5b3632ddfbe568a16266c904a6f32cdaf"
+checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7"
dependencies = [
"bytemuck",
]
+[[package]]
+name = "fontations"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "011db3cf1a28538f05bd7118555aec155a6295689ecba65f62da8d2cdf10fe83"
+dependencies = [
+ "font-types",
+ "read-fonts",
+ "skrifa",
+ "write-fonts",
+]
+
[[package]]
name = "getrandom"
version = "0.3.2"
version = "0.4.13"
dependencies = [
"bytes",
+ "fontations",
"glob",
"indexmap",
"itertools 0.13.0",
"quote",
"serde",
"serde_json",
- "skrifa",
"syn",
- "write-fonts",
]
[[package]]
[[package]]
name = "read-fonts"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "600e807b48ac55bad68a8cb75cc3c7739f139b9248f7e003e01e080f589b5288"
+checksum = "5ce8e2ca6b24313587a03ca61bb74c384e2a815bd90cf2866cfc9f5fb7a11fa0"
dependencies = [
"bytemuck",
"font-types",
[[package]]
name = "skrifa"
-version = "0.30.0"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fa1e5622e4f7b98877e8a19890efddcac1230cec6198bd9de91ec0e00010dc8"
+checksum = "bbe6666ab11018ab91ff7b03f1a3b9fdbecfb610848436fefa5ce50343d3d913"
dependencies = [
"bytemuck",
"read-fonts",
[[package]]
name = "write-fonts"
-version = "0.37.0"
+version = "0.38.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b5dd9aad60a3be53ac918d46620ef2c2305e94bb3e86fe6297698390b0e9e0"
+checksum = "f441672abab9ac7d1c2fe559c0364559728914d7da369d76591e6153cf561fc7"
dependencies = [
"font-types",
"indexmap",
[features]
default = ["fontations"]
-fontations = ["dep:write-fonts", "dep:skrifa"]
[dependencies]
bytes = "1.7.1"
prost = "0.13"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-write-fonts = { version = "0.37.0", optional = true, features = ["read"] }
-skrifa = { version = "0", optional = true }
+fontations = { version = "0.1.0", optional = true }
indexmap = "2.7.0"
[dev-dependencies]
use std::{collections::HashSet, ops::Index};
-use indexmap::IndexMap;
-use skrifa::string::StringId;
#[cfg(feature = "fontations")]
-use write_fonts::{
+use fontations::skrifa::string::StringId;
+#[cfg(feature = "fontations")]
+use fontations::{
read::FontRef,
read::{ReadError, TableProvider},
- FontBuilder,
+ write::FontBuilder,
};
+use indexmap::IndexMap;
include!(concat!(env!("OUT_DIR"), "/_.rs"));
include!(concat!(env!("OUT_DIR"), "/data.rs"));
#[cfg(feature = "fontations")]
mod stat;
#[cfg(feature = "fontations")]
-mod fontations {
+mod fontations_impl {
use super::*;
- use monkeypatching::{AxisValueNameId, SetAxisValueNameId};
- use nametable::{
- add_name, best_familyname, best_subfamilyname, find_or_add_name, rewrite_or_insert,
- };
- use skrifa::{string::StringId, MetadataProvider, Tag};
- use stat::{AxisLocation, AxisRecord, AxisValue, StatBuilder};
- use std::{cmp::Reverse, collections::HashMap};
- use write_fonts::{
+ use fontations::skrifa::{string::StringId, MetadataProvider, Tag};
+ use fontations::write::{
from_obj::ToOwnedTable,
tables::{
fvar::{Fvar, InstanceRecord},
},
types::Fixed,
};
+ use monkeypatching::{AxisValueNameId, SetAxisValueNameId};
+ use nametable::{
+ add_name, best_familyname, best_subfamilyname, find_or_add_name, rewrite_or_insert,
+ };
+ use stat::{AxisLocation, AxisRecord, AxisValue, StatBuilder};
+ use std::{cmp::Reverse, collections::HashMap};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum RenameAggressiveness {
}
#[cfg(feature = "fontations")]
-pub use fontations::*;
+pub use fontations_impl::*;
#[cfg(test)]
mod tests {
- use pretty_assertions::assert_eq;
- use skrifa::{string::StringId, MetadataProvider, Tag};
- use write_fonts::{
+ use fontations::skrifa::{string::StringId, MetadataProvider, Tag};
+ use fontations::write::{
from_obj::ToOwnedTable,
tables::{
name::Name,
stat::{AxisValue, Stat},
},
};
+ use pretty_assertions::assert_eq;
use super::*;
// STAT tables are *horrible*.
-use skrifa::string::StringId;
-use write_fonts::tables::stat::AxisValue as WriteAxisValue;
+use fontations::skrifa::string::StringId;
+use fontations::write::tables::stat::AxisValue as WriteAxisValue;
pub(crate) trait AxisValueNameId {
fn value_name_id(&self) -> Option<StringId>;
+/// Utility functions for name table handling.
use std::collections::HashSet;
-use skrifa::{string::StringId, FontRef, MetadataProvider};
-use write_fonts::tables::name::NameRecord;
-
-/// Utility functions for name table handling.
+use fontations::skrifa::{string::StringId, FontRef, MetadataProvider};
+use fontations::write::tables::name::NameRecord;
pub(crate) fn get_best_name(font: &FontRef, ids: &[StringId]) -> Option<String> {
for id in ids {
// We're uninterested in anything other than 3/1/0x409, so we use Strings instead
// of the more correct NameSpec.
-use std::collections::HashMap;
-use write_fonts::{
+use fontations::write::{
tables::{name::NameRecord, stat as write_stat},
types::{Fixed, NameId, Tag},
};
+use std::collections::HashMap;
use crate::nametable::find_or_add_name;