arch_pkg_text/desc/query/
misc.rs

1//! Miscellaneous items.
2
3use super::{EncourageReuse, Query, QueryMut};
4use crate::desc::ParsedField;
5
6/// Wrapper struct to permit [`QueryMut`] on a struct that only implements [`Query`].
7#[derive(Debug, Default, Clone, Copy)]
8pub struct DeriveQueryMut<Querier: ?Sized>(pub Querier);
9
10impl<'a, Querier: Query<'a> + ?Sized> Query<'a> for DeriveQueryMut<Querier> {
11    fn query_raw_text(&self, field: ParsedField) -> Option<&'a str> {
12        self.0.query_raw_text(field)
13    }
14}
15
16impl<'a, Querier: Query<'a> + ?Sized> QueryMut<'a> for DeriveQueryMut<Querier> {
17    fn query_raw_text_mut(&mut self, field: ParsedField) -> Option<&'a str> {
18        self.query_raw_text(field)
19    }
20}
21
22impl<'a, Querier: Query<'a> + EncourageReuse + ?Sized> EncourageReuse for DeriveQueryMut<Querier> {
23    const ENCOURAGE_REUSE: bool = Querier::ENCOURAGE_REUSE;
24}