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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
extern crate binary_reader;
extern crate font_reader;
mod formats;
mod types;
use font_reader::read;
fn main() {
let paths = vec![
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI-BoldItalic.ttf",
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI-Bold.ttf",
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI-Italic.ttf",
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI-Light.ttf",
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI-SemiBold.ttf",
// "/home/ruut/.local/share/fonts/Segoe/SegoeUI.ttf",
// "/home/ruut/.local/share/fonts/otf/expletus-sans-italic.otf",
// "/home/ruut/.local/share/bad_fonts/Portico Light Rough.otf",
// "/home/ruut/.local/share/fonts/variable/AngstVF.ttf",
// "/home/ruut/.local/share/fonts/variable/RobotoFlex[slnt,wdth,wght,opsz].ttf",
// "/home/ruut/.local/share/fonts/otf/fundamental-brigade-scvhlank.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoBoldItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoBold.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoHeavyItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoHeavy.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoLightItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoLight.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoMediumItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoMedium.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoRegularItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoRegular.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoSemiboldItalic.otf",
// "/home/ruut/.local/share/fonts/otf/SFMonoSemibold.otf",
// "/usr/share/fonts/truetype/Gargi/Gargi.ttf",
// "/usr/share/fonts/users/DevanagariMT.ttc",
// "/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf",
// "/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSans.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf",
// "/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSansBold.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf",
// "/usr/share/fonts/truetype/freefont/FreeMono.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf",
// "/usr/share/fonts/truetype/freefont/FreeSerif.ttf",
"/usr/share/fonts/truetype/pagul/Pagul.ttf",
];
for path in paths {
match read(path) {
Ok(data) => {
println!("Font {} | Font count: {}", path, data.len(),);
for font in data {
println!(
" family: {}\n id: {}\n style: {}\n postscript: {}\n weight: {}\n stretch: {}\n italic: {}\n",
font.family,
font.id,
font.style,
font.postscript,
font.weight,
font.stretch,
font.italic
)
}
}
Err(err) => println!("Read '{}' font error: {}", path, err),
}
}
}