use crate::model::LicenseCategory;
use serde::{Deserialize, Serialize};
#[allow(dead_code)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum PolicyPreset {
Permissive,
CommercialFriendly,
Strict,
}
#[allow(dead_code)]
impl PolicyPreset {
pub fn is_allowed(&self, category: LicenseCategory) -> bool {
match self {
PolicyPreset::Permissive => matches!(category, LicenseCategory::Permissive),
PolicyPreset::CommercialFriendly => {
matches!(
category,
LicenseCategory::Permissive | LicenseCategory::WeakCopyleft
)
}
PolicyPreset::Strict => !matches!(
category,
LicenseCategory::StrongCopyleft
| LicenseCategory::NetworkCopyleft
| LicenseCategory::NonCommercial
| LicenseCategory::Proprietary
),
}
}
}