1use fetch::FetchSpec;
2
3const GEMMA: [FetchSpec; 6] = [
4 FetchSpec {
5 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/config.json",
6 dest_rel: "models/embeddinggemma-300m-q4/config.json",
7 sha256: "6e1f06404b7163e0325ed2ea3e6781cde50f4a50b31780a95ad0d30e8404d77b",
8 size_hint: Some(1_765),
9 },
10 FetchSpec {
11 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/special_tokens_map.json",
12 dest_rel: "models/embeddinggemma-300m-q4/special_tokens_map.json",
13 sha256: "2f7b0adf4fb469770bb1490e3e35df87b1dc578246c5e7e6fc76ecf33213a397",
14 size_hint: Some(662),
15 },
16 FetchSpec {
17 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/tokenizer_config.json",
18 dest_rel: "models/embeddinggemma-300m-q4/tokenizer_config.json",
19 sha256: "3ca953eea6c3c9fcda9cf3df22949ff18b216f7c74bd6459230f3f1013953f3a",
20 size_hint: Some(1_156_830),
21 },
22 FetchSpec {
23 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/tokenizer.json",
24 dest_rel: "models/embeddinggemma-300m-q4/tokenizer.json",
25 sha256: "4dda02faaf32bc91031dc8c88457ac272b00c1016cc679757d1c441b248b9c47",
26 size_hint: Some(20_323_312),
27 },
28 FetchSpec {
29 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/onnx/model_q4.onnx",
30 dest_rel: "models/embeddinggemma-300m-q4/onnx/model_q4.onnx",
31 sha256: "ad1dfee81a70f7944b9b9d1cc6e48075b832881cf33fab2f2b248be78f3f0043",
32 size_hint: Some(519_322),
33 },
34 FetchSpec {
35 url: "https://huggingface.co/onnx-community/embeddinggemma-300m-ONNX/resolve/5090578d9565bb06545b4552f76e6bc2c93e4a66/onnx/model_q4.onnx_data",
36 dest_rel: "models/embeddinggemma-300m-q4/onnx/model_q4.onnx_data",
37 sha256: "599962c3143b040de2dd05e5975be3e9091dd067cacc6a8f7186e3203bab9e02",
38 size_hint: Some(196_725_760),
39 },
40];
41
42pub fn catalog() -> &'static [FetchSpec] {
43 &GEMMA
44}
45
46#[cfg(test)]
47mod tests {
48 use super::*;
49
50 #[test]
51 fn catalog_has_all_six_gemma_files() {
52 assert_eq!(catalog().len(), 6);
53 }
54
55 #[test]
56 fn every_entry_lands_under_the_pinned_model_dir() {
57 for spec in catalog() {
58 assert!(spec.dest_rel.starts_with("models/embeddinggemma-300m-q4/"));
59 }
60 }
61
62 #[test]
63 fn every_entry_carries_a_sha256_and_a_size_hint() {
64 for spec in catalog() {
65 assert_eq!(spec.sha256.len(), 64);
66 assert!(spec.size_hint.is_some());
67 }
68 }
69}