pub mod make;
pub mod meta;
pub mod minimize;
pub use make::MakeOccasion;
pub use meta::MetaOccasion;
pub use minimize::{
CachedExtractedComments, CachedMinimizeEntry, MinimizeOccasion, MinimizePersistentCacheArtifact,
};
use rspack_error::Result;
use super::storage::Storage;
#[async_trait::async_trait]
pub trait Occasion {
type Artifact: Send;
fn reset(&self, storage: &mut dyn Storage);
fn save(&self, storage: &mut dyn Storage, artifact: &Self::Artifact);
async fn recovery(&self, storage: &dyn Storage) -> Result<Self::Artifact>;
}