//! ref: composer/src/Composer/Downloader/TransportException.php use shirabe_php_shim::{PhpMixed, RuntimeException}; #[derive(Debug, Clone)] pub struct TransportException { inner: RuntimeException, headers: Option>, response: Option, status_code: Option, response_info: Vec, } impl TransportException { pub fn new(message: String, code: i64) -> Self { Self { inner: RuntimeException::with_code(message, code), headers: None, response: None, status_code: None, response_info: vec![], } } pub fn set_headers(&mut self, headers: Vec) { self.headers = Some(headers); } pub fn get_headers(&self) -> Option<&Vec> { self.headers.as_ref() } pub fn set_response(&mut self, response: Option) { self.response = response; } pub fn get_response(&self) -> Option<&str> { self.response.as_deref() } pub fn set_status_code(&mut self, status_code: Option) { self.status_code = status_code; } pub fn get_status_code(&self) -> Option { self.status_code } pub fn get_response_info(&self) -> &Vec { &self.response_info } pub fn set_response_info(&mut self, response_info: Vec) { self.response_info = response_info; } } shirabe_php_shim::impl_php_exception!( TransportException, inner, r"Composer\Downloader\TransportException" );