cloud-sdk 0.47.0

no_std-first provider-neutral cloud SDK foundations.
Documentation
use super::{IdempotencyIntent, MaxAttempts};
use crate::retry::RetryPermit;

#[test]
fn zero_attempt_policy_is_unrepresentable() {
    assert!(MaxAttempts::new(0).is_err());
    assert_eq!(MaxAttempts::new(1).map(MaxAttempts::get), Ok(1));
    assert!(core::mem::size_of::<RetryPermit<'static, 'static, 'static>>() <= 128);
}

#[test]
fn intent_shape_rejects_and_clears_invalid_values() {
    let mut empty = [];
    let mut short = [1_u8; 15];
    let mut oversized = [1_u8; 65];
    let mut zero = [0_u8; 16];
    assert!(IdempotencyIntent::new(&mut empty).is_err());
    assert!(IdempotencyIntent::new(&mut short).is_err());
    assert!(IdempotencyIntent::new(&mut oversized).is_err());
    assert!(IdempotencyIntent::new(&mut zero).is_err());
    assert!(short.iter().all(|byte| *byte == 0));
    assert!(oversized.iter().all(|byte| *byte == 0));
    assert!(zero.iter().all(|byte| *byte == 0));
}