crate_seq_ledger/
query.rs1use crate::{CrateSeqLedger, LedgerEntry, LedgerStatus};
4
5impl CrateSeqLedger {
6 #[must_use]
8 pub fn pending_versions(&self) -> Vec<&LedgerEntry> {
9 let mut entries: Vec<&LedgerEntry> = self
10 .entries
11 .iter()
12 .filter(|e| e.status == LedgerStatus::Pending)
13 .collect();
14 entries.sort_by(|a, b| a.version.cmp(&b.version));
15 entries
16 }
17
18 #[must_use]
20 pub fn published_versions(&self) -> Vec<&LedgerEntry> {
21 let mut entries: Vec<&LedgerEntry> = self
22 .entries
23 .iter()
24 .filter(|e| e.status == LedgerStatus::Published)
25 .collect();
26 entries.sort_by(|a, b| a.version.cmp(&b.version));
27 entries
28 }
29
30 #[must_use]
32 pub fn find_version(&self, v: &semver::Version) -> Option<&LedgerEntry> {
33 self.entries.iter().find(|e| &e.version == v)
34 }
35}