storekit-rs 0.2.0

Safe Rust bindings for Apple's StoreKit framework — in-app purchases and transaction streams on macOS
Documentation
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum RenewalState {
    Subscribed,
    Expired,
    InBillingRetryPeriod,
    InGracePeriod,
    Revoked,
    Unknown(String),
}

impl RenewalState {
    pub fn as_str(&self) -> &str {
        match self {
            Self::Subscribed => "subscribed",
            Self::Expired => "expired",
            Self::InBillingRetryPeriod => "inBillingRetryPeriod",
            Self::InGracePeriod => "inGracePeriod",
            Self::Revoked => "revoked",
            Self::Unknown(value) => value.as_str(),
        }
    }

    pub fn from_raw(raw: impl Into<String>) -> Self {
        match raw.into().as_str() {
            "subscribed" => Self::Subscribed,
            "expired" => Self::Expired,
            "inBillingRetryPeriod" => Self::InBillingRetryPeriod,
            "inGracePeriod" => Self::InGracePeriod,
            "revoked" => Self::Revoked,
            other => Self::Unknown(other.to_owned()),
        }
    }
}