arch_pkg_text/srcinfo/query/generic/
std_ext.rs

1use crate::srcinfo::{FieldName, Query, QueryMut, QueryRawTextItem, misc::ReuseAdvice};
2use std::{rc::Rc, sync::Arc};
3
4macro_rules! impl_pointer {
5    ($wrapper:ident) => {
6        impl<'a, Querier: Query<'a> + ?Sized> Query<'a> for $wrapper<Querier> {
7            fn query_raw_text(
8                &self,
9                field_name: FieldName,
10            ) -> impl Iterator<Item = QueryRawTextItem<'a>> {
11                Querier::query_raw_text(self, field_name)
12            }
13        }
14
15        impl<'a, Querier: Query<'a> + ?Sized> QueryMut<'a> for $wrapper<Querier> {
16            fn query_raw_text_mut(
17                &mut self,
18                field_name: FieldName,
19            ) -> impl Iterator<Item = QueryRawTextItem<'a>> {
20                self.query_raw_text(field_name)
21            }
22        }
23
24        impl<Querier: ReuseAdvice + ?Sized> ReuseAdvice for $wrapper<Querier> {
25            type ShouldReuse = Querier::ShouldReuse;
26        }
27    };
28}
29
30impl_pointer!(Box);
31impl_pointer!(Rc);
32impl_pointer!(Arc);