diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2024-10-18 15:57:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-18 15:57:12 -0700 |
commit | 2c3900370ac3e0b62f1e0dfb86a883c75952146d (patch) | |
tree | dd487491bbb1bbfde8546ad8c533acad64330b4e /ext/http/service.rs | |
parent | 8ca8174c81a3de35bcb02fc371c90f9d0a7303ab (diff) |
refactor(ext/http): use concrete error types (#26377)
Diffstat (limited to 'ext/http/service.rs')
-rw-r--r-- | ext/http/service.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/ext/http/service.rs b/ext/http/service.rs index 787e9babf..75f93d77c 100644 --- a/ext/http/service.rs +++ b/ext/http/service.rs @@ -2,7 +2,6 @@ use crate::request_properties::HttpConnectionProperties; use crate::response_body::ResponseBytesInner; use crate::response_body::ResponseStreamResult; -use deno_core::error::AnyError; use deno_core::futures::ready; use deno_core::BufView; use deno_core::OpState; @@ -206,6 +205,10 @@ pub(crate) async fn handle_request( Ok(response) } +#[derive(Debug, thiserror::Error)] +#[error("upgrade unavailable")] +pub struct UpgradeUnavailableError; + struct HttpRecordInner { server_state: SignallingRc<HttpServerState>, request_info: HttpConnectionProperties, @@ -344,14 +347,14 @@ impl HttpRecord { } /// Perform the Hyper upgrade on this record. - pub fn upgrade(&self) -> Result<OnUpgrade, AnyError> { + pub fn upgrade(&self) -> Result<OnUpgrade, UpgradeUnavailableError> { // Manually perform the upgrade. We're peeking into hyper's underlying machinery here a bit self .self_mut() .request_parts .extensions .remove::<OnUpgrade>() - .ok_or_else(|| AnyError::msg("upgrade unavailable")) + .ok_or(UpgradeUnavailableError) } /// Take the Hyper body from this record. @@ -515,7 +518,7 @@ pub struct HttpRecordResponse(ManuallyDrop<Rc<HttpRecord>>); impl Body for HttpRecordResponse { type Data = BufView; - type Error = AnyError; + type Error = deno_core::error::AnyError; fn poll_frame( self: Pin<&mut Self>, @@ -640,7 +643,7 @@ mod tests { } #[tokio::test] - async fn test_handle_request() -> Result<(), AnyError> { + async fn test_handle_request() -> Result<(), deno_core::error::AnyError> { let (tx, mut rx) = tokio::sync::mpsc::channel(10); let server_state = HttpServerState::new(); let server_state_check = server_state.clone(); |