arch_pkg_text/srcinfo/query/generic/
std_ext.rs1use 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);