use crate::sns::report::{
SnsHostError, SnsRewardCheckpointReport, SnsRewardDiffReport, build_sns_reward_diff_report,
};
use std::{fs, path::Path};
pub fn load_sns_reward_checkpoint(path: &Path) -> Result<SnsRewardCheckpointReport, SnsHostError> {
let data = fs::read_to_string(path).map_err(|source| SnsHostError::ReadRewardCheckpoint {
path: path.to_path_buf(),
source,
})?;
serde_json::from_str(&data).map_err(|source| SnsHostError::ParseRewardCheckpoint {
path: path.to_path_buf(),
source,
})
}
pub fn build_sns_reward_diff_report_from_paths(
before_path: &Path,
after_path: &Path,
) -> Result<SnsRewardDiffReport, SnsHostError> {
let before = load_sns_reward_checkpoint(before_path)?;
let after = load_sns_reward_checkpoint(after_path)?;
Ok(build_sns_reward_diff_report(&before, &after))
}