From fec6939ee24cd0173e8dd545309d9adeeb32cae0 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 15 May 2026 23:35:39 +0900 Subject: feat(port): port PreFileDownloadEvent.php --- .../shirabe/src/plugin/pre_file_download_event.rs | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'crates/shirabe/src') diff --git a/crates/shirabe/src/plugin/pre_file_download_event.rs b/crates/shirabe/src/plugin/pre_file_download_event.rs index 91cd74e..0e2be7a 100644 --- a/crates/shirabe/src/plugin/pre_file_download_event.rs +++ b/crates/shirabe/src/plugin/pre_file_download_event.rs @@ -1 +1,74 @@ //! ref: composer/src/Composer/Plugin/PreFileDownloadEvent.php + +use indexmap::IndexMap; +use shirabe_php_shim::PhpMixed; + +use crate::event_dispatcher::event::Event; +use crate::util::http_downloader::HttpDownloader; + +#[derive(Debug)] +pub struct PreFileDownloadEvent { + inner: Event, + http_downloader: HttpDownloader, + processed_url: String, + custom_cache_key: Option, + r#type: String, + context: PhpMixed, + transport_options: IndexMap>, +} + +impl PreFileDownloadEvent { + pub fn new( + name: String, + http_downloader: HttpDownloader, + processed_url: String, + r#type: String, + context: PhpMixed, + ) -> Self { + Self { + inner: Event::new(name, vec![], IndexMap::new()), + http_downloader, + processed_url, + custom_cache_key: None, + r#type, + context, + transport_options: IndexMap::new(), + } + } + + pub fn get_http_downloader(&self) -> &HttpDownloader { + &self.http_downloader + } + + pub fn get_processed_url(&self) -> &str { + &self.processed_url + } + + pub fn set_processed_url(&mut self, processed_url: String) { + self.processed_url = processed_url; + } + + pub fn get_custom_cache_key(&self) -> Option<&str> { + self.custom_cache_key.as_deref() + } + + pub fn set_custom_cache_key(&mut self, custom_cache_key: Option) { + self.custom_cache_key = custom_cache_key; + } + + pub fn get_type(&self) -> &str { + &self.r#type + } + + pub fn get_context(&self) -> &PhpMixed { + &self.context + } + + pub fn get_transport_options(&self) -> &IndexMap> { + &self.transport_options + } + + pub fn set_transport_options(&mut self, options: IndexMap>) { + self.transport_options = options; + } +} -- cgit v1.3.1