From 4ac80061ca7dbd2c93a64a5eb25dc855c583bf2f Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Tue, 2 Sep 2025 15:55:23 +0800 Subject: [PATCH] Add desired_retention field to NormalDeckSchema11 (#4292) * Add desired_retention field to NormalDeckSchema11 * pass ci --- rslib/src/decks/schema11.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rslib/src/decks/schema11.rs b/rslib/src/decks/schema11.rs index 5cd4094f0..3d4e30b96 100644 --- a/rslib/src/decks/schema11.rs +++ b/rslib/src/decks/schema11.rs @@ -135,6 +135,8 @@ pub struct NormalDeckSchema11 { review_limit_today: Option, #[serde(default, deserialize_with = "default_on_invalid")] new_limit_today: Option, + #[serde(default, deserialize_with = "default_on_invalid")] + desired_retention: Option, } #[derive(Serialize, Deserialize, PartialEq, Debug, Clone)] @@ -249,6 +251,7 @@ impl Default for NormalDeckSchema11 { new_limit: None, review_limit_today: None, new_limit_today: None, + desired_retention: None, } } } @@ -325,7 +328,7 @@ impl From for NormalDeck { new_limit: deck.new_limit, review_limit_today: deck.review_limit_today, new_limit_today: deck.new_limit_today, - desired_retention: None, + desired_retention: deck.desired_retention.map(|v| v as f32 / 100.0), } } } @@ -367,6 +370,7 @@ impl From for DeckSchema11 { new_limit: norm.new_limit, review_limit_today: norm.review_limit_today, new_limit_today: norm.new_limit_today, + desired_retention: norm.desired_retention.map(|v| (v * 100.0) as u32), common: deck.into(), }), DeckKind::Filtered(ref filt) => DeckSchema11::Filtered(FilteredDeckSchema11 { @@ -431,7 +435,8 @@ static RESERVED_DECK_KEYS: Set<&'static str> = phf_set! { "browserCollapsed", "extendRev", "id", - "collapsed" + "collapsed", + "desiredRetention", }; impl From<&Deck> for DeckTodaySchema11 {