1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#[cfg(not(feature = "fs"))]
fn main() {}
#[cfg(feature = "fs")]
fn main() {
std::env::set_var("RUST_LOG", "fontdb=trace");
env_logger::init();
let mut db = fontdb::Database::new();
let now = std::time::Instant::now();
db.load_system_fonts();
db.set_serif_family("Times New Roman");
db.set_sans_serif_family("Arial");
db.set_cursive_family("Comic Sans MS");
db.set_fantasy_family("Impact");
db.set_monospace_family("Courier New");
println!(
"Loaded {} font faces in {}ms.",
db.len(),
now.elapsed().as_millis()
);
const FAMILY_NAME: &str = "Times New Roman";
let query = fontdb::Query {
families: &[fontdb::Family::Name(FAMILY_NAME), fontdb::Family::SansSerif],
weight: fontdb::Weight::BOLD,
..fontdb::Query::default()
};
let now = std::time::Instant::now();
match db.query(&query) {
Some(id) => {
let (src, index) = db.face_source(id).unwrap();
if let fontdb::Source::File(ref path) = &src {
println!(
"Font '{}':{} found in {}ms.",
path.display(),
index,
now.elapsed().as_micros() as f64 / 1000.0
);
}
}
None => {
println!("Error: '{}' not found.", FAMILY_NAME);
}
}
}
|