use serde::{Deserialize, Serialize};
use super::CacheManagerOptions;
pub type CacheOptions = CacheManagerOptions;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct CacheModuleOptions {
#[serde(flatten)]
pub cache_options: CacheOptions,
pub isGlobal: Option<bool>,
}
impl CacheModuleOptions {
pub fn new(cache_options: CacheOptions) -> Self {
Self {
cache_options,
isGlobal: None,
}
}
pub fn global(mut self, is_global: bool) -> Self {
self.isGlobal = Some(is_global);
self
}
}
pub trait CacheOptionsFactory {
fn createCacheOptions(&self) -> CacheOptions;
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct CacheModuleAsyncOptions {
pub imports: Vec<String>,
pub useExisting: Option<String>,
pub useClass: Option<String>,
pub useFactory: bool,
pub inject: Vec<String>,
pub extraProviders: Vec<String>,
pub isGlobal: Option<bool>,
pub options: Option<CacheOptions>,
}