From caadd9336d4b629d909857b3cc665f1085ef26a1 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Sun, 13 Jul 2025 10:05:26 +0100 Subject: [PATCH] split memorised and cost --- proto/anki/scheduler.proto | 3 ++- rslib/src/scheduler/fsrs/simulator.rs | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/proto/anki/scheduler.proto b/proto/anki/scheduler.proto index 56ad389ee..2dd92440b 100644 --- a/proto/anki/scheduler.proto +++ b/proto/anki/scheduler.proto @@ -417,7 +417,8 @@ message SimulateFsrsReviewResponse { } message SimulateFsrsWorkloadResponse { - map dr_workload = 1; + map cost = 1; + map memorized = 2; } message ComputeOptimalRetentionResponse { diff --git a/rslib/src/scheduler/fsrs/simulator.rs b/rslib/src/scheduler/fsrs/simulator.rs index 99ca42989..cc665ee90 100644 --- a/rslib/src/scheduler/fsrs/simulator.rs +++ b/rslib/src/scheduler/fsrs/simulator.rs @@ -286,12 +286,17 @@ impl Collection { )?; Ok(( dr, - result.memorized_cnt_per_day.last().unwrap_or(&0.) - / result.cost_per_day.iter().sum::(), + ( + *result.memorized_cnt_per_day.last().unwrap_or(&0.), + result.cost_per_day.iter().sum::(), + ), )) }) .collect::>>()?; - Ok(SimulateFsrsWorkloadResponse { dr_workload }) + Ok(SimulateFsrsWorkloadResponse { + memorized: dr_workload.iter().map(|(k, v)| (*k, v.0)).collect(), + cost: dr_workload.iter().map(|(k, v)| (*k, v.1)).collect(), + }) } }