//! ref: composer/src/Composer/Installer/PackageEvent.php use crate::composer::ComposerWeakHandle; use crate::dependency_resolver::operation::OperationInterface; use crate::event_dispatcher::Event; use crate::io::IOInterface; use crate::repository::RepositoryInterface; use indexmap::IndexMap; #[derive(Debug)] pub struct PackageEvent { inner: Event, composer: ComposerWeakHandle, io: Box, dev_mode: bool, local_repo: Box, operations: Vec>, operation: Box, } impl PackageEvent { pub fn new( event_name: String, composer: ComposerWeakHandle, io: Box, dev_mode: bool, local_repo: Box, operations: Vec>, operation: Box, ) -> Self { Self { inner: Event::new(event_name, vec![], IndexMap::new()), composer, io, dev_mode, local_repo, operations, operation, } } pub fn get_name(&self) -> &str { self.inner.get_name() } pub fn get_composer(&self) -> &ComposerWeakHandle { &self.composer } pub fn get_io(&self) -> &dyn IOInterface { self.io.as_ref() } pub fn is_dev_mode(&self) -> bool { self.dev_mode } pub fn get_local_repo(&self) -> &dyn RepositoryInterface { self.local_repo.as_ref() } pub fn get_operations(&self) -> &Vec> { &self.operations } pub fn get_operation(&self) -> &dyn OperationInterface { self.operation.as_ref() } }