MCPcopy Create free account
hub / github.com/ccusage/ccusage / parse_models_dev_json

Function parse_models_dev_json

rust/crates/ccusage/src/pricing.rs:1046–1065  ·  view source on GitHub ↗
(json: &str)

Source from the content-addressed store, hash-verified

1044}
1045
1046fn parse_models_dev_json(json: &str) -> Option<ModelsDevJson> {
1047 let value = serde_json::from_str::<Value>(json).ok()?;
1048 let Value::Object(entries) = &value else {
1049 return None;
1050 };
1051 if entries.values().any(models_dev_entry_has_models_field) {
1052 if !entries.values().all(models_dev_entry_has_models_field) {
1053 return None;
1054 }
1055 return serde_json::from_value::<FxHashMap<String, ModelsDevProvider>>(value)
1056 .ok()
1057 .map(ModelsDevJson::Providers);
1058 }
1059 if !entries.values().all(models_dev_entry_has_required_cost) {
1060 return None;
1061 }
1062 serde_json::from_value::<FxHashMap<String, ModelsDevModel>>(value)
1063 .ok()
1064 .map(ModelsDevJson::Models)
1065}
1066
1067fn models_dev_entry_has_models_field(value: &Value) -> bool {
1068 value

Callers 1

Calls 2

anyMethod · 0.80
allMethod · 0.80

Tested by

no test coverage detected