ferrin-provider-util 0.2.0

Ferrin provider utilities: HTTP transport trait, reqwest transport, SSE decoding, secure URL policy, settings.
Documentation
//! Batch helpers.

use ferrin_spec::batch::BatchRequestCounts;

/// Builds request counts when every count is present and they add up.
#[must_use]
pub fn normalize_batch_request_counts(
    total: Option<u64>,
    pending: Option<u64>,
    completed: Option<u64>,
    failed: Option<u64>,
) -> Option<BatchRequestCounts> {
    let (total, pending, completed, failed) = (total?, pending?, completed?, failed?);
    let sum = pending.checked_add(completed)?.checked_add(failed)?;
    (sum == total).then_some(BatchRequestCounts {
        total,
        pending,
        completed,
        failed,
    })
}