pub async fn fetch( plan: &FetchPlan, client: &Client, offline: bool, ) -> Result<(), FetchError>
Ensure plan.cache_path exists and matches plan.expected_sha256.
plan.cache_path
plan.expected_sha256