pub(crate) fn tokens_available_at(&self, tokens: u64) -> Result<I, NeverEnoughTokensError> {
/// the result may be much lower than the expected duration due to saturating 64-bit arithmetic.
/// Any type implementing this must be represented as a measurement of a monotonically nondecreasing