cobalt/pagination/helpers.rs
1pub(crate) fn extract_scalar<'a>(
2 a: &'a dyn liquid::ValueView,
3 key: &str,
4) -> Option<liquid::model::ScalarCow<'a>> {
5 let v = extract_value(a, key)?;
6 v.as_scalar()
7}
8
9pub(crate) fn extract_tags(value: &dyn liquid::ValueView) -> Option<&dyn liquid::model::ArrayView> {
10 let v = extract_value(value, "tags")?;
11 v.as_array()
12}
13
14pub(crate) fn extract_categories(
15 value: &dyn liquid::ValueView,
16) -> Option<&dyn liquid::model::ArrayView> {
17 let v = extract_value(value, "categories")?;
18 v.as_array()
19}
20
21fn extract_value<'v>(v: &'v dyn liquid::ValueView, key: &str) -> Option<&'v dyn liquid::ValueView> {
22 let o = v.as_object()?;
23 o.get(key)
24}