summaryrefslogtreecommitdiff
path: root/runtime/ops/fs_events.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-04-05 18:40:24 +0200
committerGitHub <noreply@github.com>2021-04-05 18:40:24 +0200
commit2aed322dd507a8568b6ee6f4897e9a8e3220f763 (patch)
treee9a45c0b7688a9881ea9ce132b92554ef2955ad6 /runtime/ops/fs_events.rs
parent284e6c303956e8ca20af63b4ecc045438a260fe6 (diff)
refactor: convert ops to use serde_v8 (#10009)
This commit rewrites most of the ops to use "serde_v8" instead of "json" serialization.
Diffstat (limited to 'runtime/ops/fs_events.rs')
-rw-r--r--runtime/ops/fs_events.rs21
1 files changed, 7 insertions, 14 deletions
diff --git a/runtime/ops/fs_events.rs b/runtime/ops/fs_events.rs
index fed28a3d2..a64f31a33 100644
--- a/runtime/ops/fs_events.rs
+++ b/runtime/ops/fs_events.rs
@@ -3,8 +3,6 @@
use crate::permissions::Permissions;
use deno_core::error::bad_resource_id;
use deno_core::error::AnyError;
-use deno_core::serde_json::json;
-use deno_core::serde_json::Value;
use deno_core::AsyncRefCell;
use deno_core::CancelFuture;
use deno_core::CancelHandle;
@@ -93,7 +91,7 @@ fn op_fs_events_open(
state: &mut OpState,
args: OpenArgs,
_zero_copy: Option<ZeroCopyBuf>,
-) -> Result<Value, AnyError> {
+) -> Result<ResourceId, AnyError> {
let (sender, receiver) = mpsc::channel::<Result<FsEvent, AnyError>>(16);
let sender = std::sync::Mutex::new(sender);
let mut watcher: RecommendedWatcher =
@@ -122,30 +120,25 @@ fn op_fs_events_open(
cancel: Default::default(),
};
let rid = state.resource_table.add(resource);
- Ok(json!(rid))
-}
-
-#[derive(Deserialize)]
-pub struct PollArgs {
- rid: ResourceId,
+ Ok(rid)
}
async fn op_fs_events_poll(
state: Rc<RefCell<OpState>>,
- args: PollArgs,
+ rid: ResourceId,
_zero_copy: Option<ZeroCopyBuf>,
-) -> Result<Value, AnyError> {
+) -> Result<Option<FsEvent>, AnyError> {
let resource = state
.borrow()
.resource_table
- .get::<FsEventsResource>(args.rid)
+ .get::<FsEventsResource>(rid)
.ok_or_else(bad_resource_id)?;
let mut receiver = RcRef::map(&resource, |r| &r.receiver).borrow_mut().await;
let cancel = RcRef::map(resource, |r| &r.cancel);
let maybe_result = receiver.recv().or_cancel(cancel).await?;
match maybe_result {
- Some(Ok(value)) => Ok(json!({ "value": value, "done": false })),
+ Some(Ok(value)) => Ok(Some(value)),
Some(Err(err)) => Err(err),
- None => Ok(json!({ "done": true })),
+ None => Ok(None),
}
}