//! ref: composer/src/Composer/Package/CompletePackageInterface.php use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; use crate::package::package_interface::PackageInterface; pub trait CompletePackageInterface: PackageInterface { fn get_scripts(&self) -> IndexMap>; fn set_scripts(&mut self, scripts: IndexMap>); fn get_repositories(&self) -> Vec>; fn set_repositories(&mut self, repositories: Vec>); fn get_license(&self) -> Vec; fn set_license(&mut self, license: Vec); fn get_keywords(&self) -> Vec; fn set_keywords(&mut self, keywords: Vec); fn get_description(&self) -> Option<&str>; fn set_description(&mut self, description: String); fn get_homepage(&self) -> Option<&str>; fn set_homepage(&mut self, homepage: String); fn get_authors(&self) -> Vec>; fn set_authors(&mut self, authors: Vec>); fn get_support(&self) -> IndexMap; fn set_support(&mut self, support: IndexMap); fn get_funding(&self) -> Vec>; fn set_funding(&mut self, funding: Vec>); fn is_abandoned(&self) -> bool; fn get_replacement_package(&self) -> Option<&str>; fn set_abandoned(&mut self, abandoned: PhpMixed); fn get_archive_name(&self) -> Option<&str>; fn set_archive_name(&mut self, name: String); fn get_archive_excludes(&self) -> Vec; fn set_archive_excludes(&mut self, excludes: Vec); fn as_package_interface(&self) -> &dyn crate::package::package_interface::PackageInterface { todo!() } }