From 25467aa7c7852c3695091a547ffac4857478c037 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Thu, 6 Feb 2020 19:09:55 -0800 Subject: [PATCH] Add blanket impl for the 'Resource' trait (#3903) --- cli/ops/io.rs | 3 --- cli/ops/net.rs | 3 --- cli/ops/plugins.rs | 2 -- cli/ops/process.rs | 2 -- cli/ops/repl.rs | 3 --- cli/ops/signal.rs | 5 ----- cli/ops/tls.rs | 3 --- core/resources.rs | 1 + 8 files changed, 1 insertion(+), 21 deletions(-) diff --git a/cli/ops/io.rs b/cli/ops/io.rs index 18ad3cf30a..9c074b8ba8 100644 --- a/cli/ops/io.rs +++ b/cli/ops/io.rs @@ -5,7 +5,6 @@ use crate::http_util::HttpBody; use crate::ops::minimal_op; use crate::state::ThreadSafeState; use deno_core::ErrBox; -use deno_core::Resource; use deno_core::*; use futures::future::FutureExt; use futures::ready; @@ -86,8 +85,6 @@ pub enum StreamResource { ChildStderr(tokio::process::ChildStderr), } -impl Resource for StreamResource {} - /// `DenoAsyncRead` is the same as the `tokio_io::AsyncRead` trait /// but uses an `ErrBox` error instead of `std::io:Error` pub trait DenoAsyncRead { diff --git a/cli/ops/net.rs b/cli/ops/net.rs index 41cfc2909f..5b35d92876 100644 --- a/cli/ops/net.rs +++ b/cli/ops/net.rs @@ -5,7 +5,6 @@ use crate::deno_error::bad_resource; use crate::ops::json_op; use crate::resolve_addr::resolve_addr; use crate::state::ThreadSafeState; -use deno_core::Resource; use deno_core::*; use futures::future::FutureExt; use std; @@ -226,8 +225,6 @@ struct TcpListenerResource { local_addr: SocketAddr, } -impl Resource for TcpListenerResource {} - impl Drop for TcpListenerResource { fn drop(&mut self) { self.wake_task(); diff --git a/cli/ops/plugins.rs b/cli/ops/plugins.rs index 1f301ee279..24a59917e3 100644 --- a/cli/ops/plugins.rs +++ b/cli/ops/plugins.rs @@ -34,8 +34,6 @@ struct PluginResource { ops: HashMap, } -impl Resource for PluginResource {} - struct InitContext { ops: HashMap>, } diff --git a/cli/ops/process.rs b/cli/ops/process.rs index ae762b1142..1ffd6b78e3 100644 --- a/cli/ops/process.rs +++ b/cli/ops/process.rs @@ -75,8 +75,6 @@ struct ChildResource { child: tokio::process::Child, } -impl Resource for ChildResource {} - fn op_run( state: &ThreadSafeState, args: Value, diff --git a/cli/ops/repl.rs b/cli/ops/repl.rs index 9c40fe04ff..9b47f262aa 100644 --- a/cli/ops/repl.rs +++ b/cli/ops/repl.rs @@ -5,7 +5,6 @@ use crate::ops::json_op; use crate::repl; use crate::repl::Repl; use crate::state::ThreadSafeState; -use deno_core::Resource; use deno_core::*; use std::sync::Arc; use std::sync::Mutex; @@ -23,8 +22,6 @@ pub fn init(i: &mut Isolate, s: &ThreadSafeState) { struct ReplResource(Arc>); -impl Resource for ReplResource {} - #[derive(Deserialize)] #[serde(rename_all = "camelCase")] struct ReplStartArgs { diff --git a/cli/ops/signal.rs b/cli/ops/signal.rs index 9726becc55..f815cb57c3 100644 --- a/cli/ops/signal.rs +++ b/cli/ops/signal.rs @@ -9,8 +9,6 @@ use super::dispatch_json::Deserialize; #[cfg(unix)] use crate::deno_error::bad_resource; #[cfg(unix)] -use deno_core::Resource; -#[cfg(unix)] use futures::future::{poll_fn, FutureExt}; #[cfg(unix)] use serde_json; @@ -39,9 +37,6 @@ pub fn init(i: &mut Isolate, s: &ThreadSafeState) { /// The second element is the waker of polling future. pub struct SignalStreamResource(pub Signal, pub Option); -#[cfg(unix)] -impl Resource for SignalStreamResource {} - #[cfg(unix)] #[derive(Deserialize)] struct BindSignalArgs { diff --git a/cli/ops/tls.rs b/cli/ops/tls.rs index 126a00f63b..45b2f2d383 100644 --- a/cli/ops/tls.rs +++ b/cli/ops/tls.rs @@ -7,7 +7,6 @@ use crate::deno_error::ErrorKind; use crate::ops::json_op; use crate::resolve_addr::resolve_addr; use crate::state::ThreadSafeState; -use deno_core::Resource; use deno_core::*; use futures::future::FutureExt; use std; @@ -185,8 +184,6 @@ pub struct TlsListenerResource { local_addr: SocketAddr, } -impl Resource for TlsListenerResource {} - impl Drop for TlsListenerResource { fn drop(&mut self) { self.wake_task(); diff --git a/core/resources.rs b/core/resources.rs index 84722f6601..51b66c4bc5 100644 --- a/core/resources.rs +++ b/core/resources.rs @@ -77,4 +77,5 @@ impl ResourceTable { /// that allows to cast resource to concrete type in `TableResource::get` /// and `TableResource::get_mut` methods. pub trait Resource: Downcast + Any + Send {} +impl Resource for T where T: Downcast + Any + Send {} impl_downcast!(Resource);