use crate::unity_version::UnityVersion;
#[derive(Default)]
pub enum FallbackUnityVersion {
Current,
Exact(UnityVersion),
#[default]
Error,
}
#[derive(Default)]
pub struct ExtractionConfig {
pub unitycn_key: Option<[u8; 16]>,
pub fallback_unity_version: FallbackUnityVersion,
}
impl ExtractionConfig {
pub fn new(
unitycn_key: Option<[u8; 16]>,
fallback_unity_version: FallbackUnityVersion,
) -> Self {
Self {
unitycn_key,
fallback_unity_version,
}
}
pub fn assume_recent_unity(mut self) -> Self {
self.fallback_unity_version = FallbackUnityVersion::Current;
self
}
pub fn with_fallback_unity_version(mut self, fallback_unity_version: UnityVersion) -> Self {
self.fallback_unity_version = FallbackUnityVersion::Exact(fallback_unity_version);
self
}
pub fn with_unitycn_key(mut self, key: [u8; 16]) -> Self {
self.unitycn_key = Some(key);
self
}
}