arch_pkg_db/multi/
latest.rs1use super::{LatestQuerier, MultiQuerier, MultiQueryDatabase, MultiQueryDatabaseLatest};
2use crate::{
3 misc::{AttachedUtils, IntoAttached},
4 value::RepositoryName,
5};
6
7impl<'a, Querier> MultiQuerier<'a, Querier> {
8 pub fn latest(&self) -> Option<LatestQuerier<'a, &Querier>> {
10 self.internal
11 .iter()
12 .max_by_key(|(_, querier)| querier.attachment())
13 .map(|(repository, querier)| {
14 querier
15 .as_deref()
16 .copied_attachment()
17 .into_attached(RepositoryName(repository))
18 })
19 }
20
21 pub fn latest_mut(&mut self) -> Option<LatestQuerier<'a, &mut Querier>> {
23 self.internal
24 .iter_mut()
25 .max_by_key(|(_, querier)| *querier.attachment())
26 .map(|(repository, querier)| {
27 querier
28 .as_deref_mut()
29 .copied_attachment()
30 .into_attached(RepositoryName(repository))
31 })
32 }
33}
34
35impl<Querier> MultiQueryDatabase<'_, Querier> {
36 pub fn latest(&self) -> MultiQueryDatabaseLatest<&Self> {
39 MultiQueryDatabaseLatest { base: self }
40 }
41
42 pub fn latest_mut(&mut self) -> MultiQueryDatabaseLatest<&mut Self> {
45 MultiQueryDatabaseLatest { base: self }
46 }
47}