diff --git a/rslib/src/decks/limits.rs b/rslib/src/decks/limits.rs index 0866a214c..4aaa4b104 100644 --- a/rslib/src/decks/limits.rs +++ b/rslib/src/decks/limits.rs @@ -351,7 +351,7 @@ impl LimitTreeMap { .map(|node_id| self.get_node_limits(node_id)) } - fn get_root_limits(&self) -> RemainingLimits { + pub(crate) fn get_root_limits(&self) -> RemainingLimits { self.get_node_limits(self.tree.root_node_id().unwrap()) } diff --git a/rslib/src/storage/card/mod.rs b/rslib/src/storage/card/mod.rs index 9e06edf07..84a7cd6df 100644 --- a/rslib/src/storage/card/mod.rs +++ b/rslib/src/storage/card/mod.rs @@ -341,6 +341,24 @@ impl super::SqliteStorage { Ok(()) } + pub(crate) fn new_cards_in_deck( + &self, + deck: DeckId, + sort: NewCardSorting, + ) -> Result> { + let mut stmt = self.db.prepare_cached(&format!( + "{} ORDER BY {}", + include_str!("new_cards.sql"), + sort.write() + ))?; + let mut rows = stmt.query(params![deck])?; + let mut names = Vec::new(); + while let Some(row) = rows.next()? { + names.push(row_to_new_card(row)?); + } + Ok(names) + } + /// Call func() for each new card in the active decks, stopping when it /// returns false or no more cards found. pub(crate) fn for_each_new_card_in_active_decks(