arch_pkg_text/desc/query/generic/
parking_lot_ext.rs

1use crate::desc::{ParsedField, Query, QueryMut};
2use parking_lot::{FairMutex, Mutex, RwLock};
3
4macro_rules! impl_lock {
5    ($wrapper:ident, $lock:ident) => {
6        impl<'a, Querier: QueryMut<'a>> Query<'a> for $wrapper<Querier> {
7            fn query_raw_text(&self, field: ParsedField) -> Option<&'a str> {
8                self.$lock().query_raw_text_mut(field)
9            }
10        }
11
12        impl<'a, Querier: QueryMut<'a>> QueryMut<'a> for $wrapper<Querier> {
13            fn query_raw_text_mut(&mut self, field: ParsedField) -> Option<&'a str> {
14                self.query_raw_text(field)
15            }
16        }
17    };
18}
19
20impl_lock!(Mutex, lock);
21impl_lock!(FairMutex, lock);
22impl_lock!(RwLock, write);