poolster_core/
extensions.rs1use serde_json::Value;
4use std::collections::BTreeMap;
5
6pub fn poolster_extension<'a>(
8 annotations: &'a BTreeMap<String, Value>,
9 suffix: &str,
10) -> Option<&'a Value> {
11 annotations.get(&format!("x-poolster-{suffix}"))
12}
13
14#[cfg(test)]
15mod tests {
16 use super::*;
17 use serde_json::json;
18
19 #[test]
20 fn reads_canonical_name() {
21 let extensions = BTreeMap::from([("x-poolster-pagination".into(), json!("canonical"))]);
22 assert_eq!(
23 poolster_extension(&extensions, "pagination"),
24 Some(&json!("canonical"))
25 );
26 assert_eq!(poolster_extension(&extensions, "missing"), None);
27 }
28}