four 0.0.13

framework for creating AWS CloudFormation template
Documentation
use nutype::nutype;
use serde::Serialize;

#[nutype(
    validate(greater_or_equal = 60, less_or_equal = 21600),
    derive(Debug, Clone, Serialize, TryFrom)
)]
pub struct MaximumEventAgeInSeconds(usize);

#[nutype(validate(less_or_equal = 2), derive(Debug, Clone, Serialize, TryFrom))]
pub struct MaximumRetryAttempts(usize);

#[derive(Debug, Clone, Serialize)]
pub struct OnFailure {
    destination: String,
}

#[derive(Debug, Clone, Serialize)]
pub struct OnSuccess {
    destination: String,
}

#[derive(Debug, Clone, Serialize)]
pub enum DestinationConfig {
    OnSuccess(OnSuccess),
    OnFailure(OnFailure),
}